Bonjour,

J'aimerais modéliser une relation reflexive bidirectionnelle en jpa2.0

Le but étant de définir un objet mirroir B du même type que A et que A puisse accéder à B et B à A

Actuellement je modélise cette entité que j'appelle Hub comme ci-dessous

@Entity
public class Hub{

/** The id. */
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "HUB_ID", nullable = false)
private int id;

/** The mirror hub. */
@OneToOne(mappedBy = "initHub", cascade = CascadeType.PERSIST, optional = true, fetch = FetchType.EAGER)
private Hub mirrorhub;

/** The rescued hub. */
@OneToOne(optional = true, fetch = FetchType.EAGER)
@JoinColumn(name = "hubRescue")
private Hub initHub;
}

Le problème est qu'en base de donnée lors de la création de l'objet initHub (ID=2) je n'ai l'association que dans 1 sens.
ID=1 pour le Hubmirror

1 admin 1446733548059 1 MEDIUM_MESSAGE false null 2
2 admin 1446733548153 0 MEDIUM_MESSAGE false null null

Le null qui est en rouge devrait être remplacé par la valeur 1 comme ça on aurait bien l'association dans les 2 sens.

Même en ajoutant le bout de code suivant lors de la création de l'objet initHub je retombe exactement sur le même état en base (l'association se fait seulement dans 1 sens):

if (bean.getMirrorHub() != null) {
Hub mirrorHub = dao.find(bean.getMirrorHub().getId());
if (mirrorHub != null) {
initHub.setmirrorHub(mirrorHub);
mirrorHub.setinitHub(initHub);
}
}


J'ai vraiment besoin d'aide c'est urgent.

merci d'avance

Nicolas.