Bonjour,
Actuellement, j'utilise les annotations hibernate 3 pour définir les relations entre mes beans.
J'ai réussi à annoter des relations @OneToMany ou @ManyToOne, mais impossible d'annoter un champs avec @OneToOne...
En effet, si je ne mets pas cette dernière annotation, en base, ce n'est pas l'id du bean que je conserve mais un byte de l'objet en entier...
Voici l'erreur qui se produit si j'ajoute cette anotation :
En effet, j'ai déjà eu ce problème lorsque j'avais des annotations @OneToMany que j'ai résolu à l'aide de EAGER, mais là, cela ne peut s'appliquer sur @OneToOne ....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 cannot simultaneously fetch multiple bags
Voici un extrait de mon code :
Ce que je ne comprends pas, c'est que dans la documentation, l'exemple est toujours simple, mais il ne fonctionne jamais ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 ... @OneToMany(fetch = FetchType.EAGER) @Fetch(FetchMode.SUBSELECT) @Cascade(value = { CascadeType.ALL }) private List<Signature> protagonistes; ... @OneToOne private Sinistre sinistre; ...
Voici l'exemple de la documentation :
Il se trouve à cette adresse :
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 public class Body { @Id public Long getId() { return id; } @OneToOne(cascade = CascadeType.ALL) @PrimaryKeyJoinColumn public Heart getHeart() { return heart; } ... } @Entity public class Heart { @Id public Long getId() { ...} }
http://www.hibernate.org/hib_docs/an...r/html_single/
Merci de prendre du temps pour m'éclairer !
Partager