Problème de fetch avec un OneToMany
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:
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:
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;
...
} |
Code:
1 2 3 4 5 6
| public class CommentUserPK implements Serializable {
private Long item;
private Long user;
} |
Sur des tests aussi basiques que em.find( Item.class, 1L );, la collection itemUsers est toujours vide...
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.