Problème annotation @OneToOne
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 :
Code:
1 2
|
cannot simultaneously fetch multiple bags |
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 ....
Voici un extrait de mon code :
Code:
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;
... |
Ce que je ne comprends pas, c'est que dans la documentation, l'exemple est toujours simple, mais il ne fonctionne jamais ...
Voici l'exemple de la documentation :
Code:
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() { ...}
} |
Il se trouve à cette adresse :
http://www.hibernate.org/hib_docs/an...r/html_single/
Merci de prendre du temps pour m'éclairer !