Hibernate перевернулся один в один - PullRequest
0 голосов
/ 22 декабря 2010

У меня есть два класса A и B, которые должны находиться в взаимно-однозначном отношении по внешнему ключу. A имеет a_id в качестве первичного ключа, а B имеет внешний ключ a_id. Но я хочу, чтобы класс B знал только об идентификаторе A (т.е.в классе B нет поля типа A), в то время как A загружает весь класс B

Я пытался (класс A)

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

Но hibernate пытается присоединиться

a.a_id = b.b_id

вместо

a.a_id = b.a_id

Есть идеи, как можно достичь ожидаемого поведения?

Спасибо

Ответы [ 2 ]

0 голосов
/ 22 декабря 2010

Должно работать с:

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

Но у меня были проблемы с отношениями 1: 1 год назад, в этом случае я использовал ManyToOne в качестве обходного пути:

@ManyToOne
@JoinColumn(name="a_id") //better name would be a_fk
private B b;
0 голосов
/ 22 декабря 2010

Один к одному используется для сценария типа наследования.Я не уверен, что вы хотите использовать один к одному против многих к одному в этой ситуации.Попробуйте много к одному с уникальным ограничением.

...