Я использую Hibernate с JPA и иметь отношения, которая выглядит так:JPA/Hibernate прокси не выборки данных реального объекта, устанавливает все свойства обнулить
public class PencilImpl implements Pencil {
@ManyToOne(targetEntity = PersonImpl.class, fetch = FetchType.LAZY)
@JoinColumn(name = "owner", nullable = false)
private Person owner;
...
@Override
public final Person getOwner() {
return owner;
}
}
Так как я начал использовать ленивых типа выборки, каждый раз, когда я пытаюсь получить владельца карандаша (pencil.getOwner) Я получаю ненулевой объект, у которого все его внутренние свойства установлены равными нулю.
Похоже, что прокси-сервер, созданный Hibernate, не получает реальный объект из базы данных, когда это необходимо.
Любые идеи? Спасибо :)
Вы вызываете геттеры и получаете нуль? Или вы проверяете объект в отладчике? Если первый, попробуйте удалить окончательный модификатор на своих геттерах. Если последний, попробуйте на самом деле вызвать геттеры. –
См. Также http://blog.bolkey.com/2009/05/hibernate-datanucleus-r1/ – DataNucleus