Bonjour,
J'utilise Spring Data JPA dans mon application

J'ai une entité qui contient une List<Interlocuteur> et une List<Lieu>
Via la méthode FinAll dans mon Repository, Je souhaite charger les deux listes

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
@Entity
@Table(name="OPERATION")
@NamedEntityGraph(name="operation.interlocuteur",attributeNodes = @NamedAttributeNode("interlocuteurs") )
@NamedEntityGraph(name="operation.lieu",attributeNodes = @NamedAttributeNode("lieux") )
public class Operation {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="OPERATION_ID")
    private Long id;
    private String titre;
 
    @OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
    @JoinColumn(name="OPERATION_ID")
    private List<Interlocuteur> interlocuteurs = new ArrayList<>() ;
 
    @OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
    @JoinColumn(name="OPERATION_ID")
    private List<Lieu> lieux = new ArrayList<>();
}
.. J'ai essayé de faire référence aux deux entityGraph dans mon Repository
Mais j'ai une erreur de compilation si j'utilise deux fois l'annotation @EntityGraph
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
@Repository
public interface OperationRepositoryInterface extends PagingAndSortingRepository<Operation,Long> {
 
    @EntityGraph(value= "operation.interlocuteur", type= EntityGraph.EntityGraphType.FETCH)
@EntityGraph(value= "operation.lieu", type= EntityGraph.EntityGraphType.FETCH)
    Iterable<Operation> findAll();
}
Y-a-t-il une possibilité de faire un findAll() qui charge la totalité de données de mon Entity en utilisant @EntityGraph?

Si ce n'est pas possible, je sais qu'il y a la possibilité de l'annotation @Query dans mon Repository.... même si je trouve la solution plus complexe
Mais je n'arrive pas à réaliser la requête JPQL qui permet d'explorer toute les données

Exemple qui fonctionne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
    @Query("SELECT o FROM Operation o "
            + "INNER JOIN FETCH o.interlocuteurs "
            + "WHERE o.id=?1")
 
    Optional<Operation> findById(Long id);
Exemple qui ne fonctionne pas :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
    @Query("SELECT o FROM Operation o "
                       + "INNER JOIN FETCH o.interlocuteurs "
                       + "INNER JOIN FETCH o.lieux "
                       + "WHERE o.id=?1")
    Optional<Operation> findById(Long id);

D'avance merci pour vos éclaircissements