2014-11-25 3 views
0

Я изучаю способы создания отношений один к одному между двумя объектами в спящем режиме.Hibernate. Одно к одному сопоставление без перекрестных ссылок

Все примеры, которые я прочитал использование перекрестных referernces:

https://stackoverflow.com/a/21762450/2674303

и

http://www.mkyong.com/hibernate/hibernate-one-to-one-relationship-example-annotation/

В этом примере:

public class User { 
    @OneToOne(mappedBy = "user") 
    private Status status; 
    // ... 
} 

public class Status { 
    @OneToOne 
    @JoinColumn(name = "frn_user_id") 
    private User user; 
    // ... 
} 

User вновь Ференц к Status и Status имеет отношение к User

На мой взгляд Status ничего о User не должен знать. Я хочу, чтобы только User ссылаются на Status.

Возможно ли это или я что-то не понимаю?

ответ

2

Вы можете попробовать это для User (удалить ссылку на пользователя в статусе)

public class User { 
    @OneToOne 
    @JoinColumn(name = "frn_user_id", insertable = false, updateable = false) 
    private Status status; 
    // ... 
} 

insertable = false, updateable = false должен поручить Hibernate искать frn_user_id в целевой таблице (Status).

Смежные вопросы