2010-12-22 12 views
0

Ich habe zwei Klassen A und B, die in one-to-one-Beziehung durch Fremdschlüssel sein sollte. A hat a_id als Primärschlüssel und B hat eine_id Fremdschlüssel Aber ich will Klasse B zu nur bewusst A Kennung sein (dh es gibt kein Feld vom Typ A in der Klasse B), während A Lasten ganzer B-KlasseHibernate umgekehrt one-to-one

ich versuchte (A-Klasse)

@OneToOne 
@JoinColumn(name="a_id",referencedColumnName="a_id") 
private B b; 

Aber versuchen winter beitreten

a.a_id = b.b_id 

statt

a.a_id = b.a_id 

Irgendwelche Ideen wie erwartetes Verhalten erreicht werden kann?

Dank

Antwort

0

Eins zu eins ist für eine Vererbung Typ Szenario verwendet. Ich bin mir nicht sicher, ob Sie eins zu eins vs viele zu eins für diese Situation verwenden wollen. Versuchen Sie es mit einem einzigartigen Constraint.

0

Es sollte mit der Arbeit:

@OneToOne 
@JoinColumn(name="a_id") //better name would be a_fk 
private B b; 

aber ich habe troulbe mit 1: 1 hatte Beziehungen einige Jahr vor, in diesem Fall habe ich einen ManyToOne als Abhilfe verwendet:

@ManyToOne 
@JoinColumn(name="a_id") //better name would be a_fk 
private B b; 
Verwandte Themen