Я хочу получить идентификатор отношения «один-к-одному» без загрузки всего объекта. Я думал, что я мог бы сделать это с помощью отложенной загрузки следующим образом:Hibernate один-на-один: getId() без выборки всего объекта
class Foo {
@OneToOne(fetch = FetchType.LAZY, optional = false)
private Bar bar;
}
Foo f = session.get(Foo.class, fooId); // Hibernate fetches Foo
f.getBar(); // Hibernate fetches full Bar object
f.getBar().getId(); // No further fetch, returns id
Я хочу f.getBar(), чтобы не триггера другой выборки. Я хочу, чтобы hibernate дал мне прокси-объект, который позволяет мне вызвать .getId(), не выбирая объект Bar.
Что я делаю неправильно?
же поведение с помощью @ManyToOne (выборка = FetchType.LAZY, факультативные = ложь) Однозначных ассоциаций просто не идут хорошо для меня .. – Rob
Его ошибка Hibernate: https://hibernate.atlassian.net/browse/HHH-3718 См. Также сравнение поля или доступа к собственности: http://stackoverflow.com/questions/594597/hibernate-annotations-which-is- best-field-or-property-access – GKislin