Я использую hibernate, с play framework 1.2.4.
Предположим, что у меня есть модель с именем Person и модель с именем IdentityInfo, и отношение состоит в том, что у человека может быть только одна информация об идентичности.
И я хочу использовать ленивый принести на IdentityInfo fetching.Here мой Код модели:hibernate lazy fetch не работает должным образом
public class Person {
// ... some code
@OneToOne(fetch = FetchType.lazy)
@JoinColumn(name = "info_id_fk")
private IdentityInfo info = null;
public IndentityInfo getInfo(){
return this.info;
}
public void setInfo(IdentityInfo info){
this.info = info;
}
}
public class IdentityInfo {
// ... some code
public String xxx = null;
public String getXxx(){
return this.xxx;
}
public void setXxx(String xxx){
this.xxx = xxx;
}
}
Но вот проблема (довольно странно): У меня есть список человека, и мне нужно, чтобы пройти идентификация всех персональных объектов.
Идентификатор личности человека человека CANT загружается должным образом (человек имеет соответствующую идентификационную информацию).
MORE specific, Когда я использую , java отражает, чтобы получить идентификационную информацию человека, иногда атрибут info равен null (но это не так).
Но когда я просто использую person.info.getXxx()
, значение атрибута пришло.
И у него не было сообщений об ошибках. Программа прошла нормально.
У кого-нибудь есть идеи?
просьба сообщить точные сообщения об ошибках и/или трассировку стека – geert3
там не ошибка messages.the программы шло нормально. – Marks
Итак, getInfo возвратил null? Вы уверены, что в БД есть IdentityInfo, соответствующий Info_id_fk этого Person? Если их нет, то нормально, что getInfo возвращает null без ошибок. – geert3