Bonjour,
Je tourne en rond sur un problème JPA qui me paraît pourtant simple.
Il s'agit simplement de "fetcher" une collection d'une entité.
Mon modèle est le suivant : j'ai des "Item" qui sont reliés à des "User" via une table d'association "ItemUser".
[ Item ] 1 --- n [ ItemUser ] n --- 1 [ User ]
Je veux pouvoir requêter des "Item" en récupérant la liste associée de "ItemUser". Problème, j'obtiens toujours une liste vide (les données en base existent).
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
21 @Entity public class Item implements Serializable { @Id @GeneratedValue( ... ) @SequenceGenerator( ... ) @Column( name = "ID" ) private Long itemId; @Lob private String content; @OneToMany( mappedBy = "item" ) private List<ItemUser> itemUsers; @NotNull @ManyToOne private SomeOtherEntity etc; ... }
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 @Entity @IdClass( value = ItemUserPK.class ) public class ItemUser implements Serializable { @Id @ManyToOne private Item item; @Id @ManyToOne private User user; private Boolean flag; ... }Sur des tests aussi basiques que em.find( Item.class, 1L );, la collection itemUsers est toujours vide...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public class CommentUserPK implements Serializable { private Long item; private Long user; }
Pour information, l'application tourne sous Glassfish 3, avec EclipseLink.
J'ai mis ce qui correspond en gros au résultat souhaité (qui me parait OK, je me suis inspiré de la spec JPA elle-même, §4.1.2) mais même en simplifiant encore plus (ItemUser avec juste id, many-to-one et flag)... c'est pas mieux...
Je suis preneur de toute suggestion !
Merci.
Partager