Hibernate ManyToMany без загрузки объектов - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть отношение как

Персона <-> LivedAt <-> Адрес

Где каждый человек LivedAt, возможно, несколько адресов, и каждый адрес мог быть LivedAt , возможно, многими людьми. LivedAt имеет такие атрибуты, как «StartDate», «EndDate» и указатели на одного человека и один адрес (это не мои реальные объекты, а лишь примеры)

Адрес имеет первичный ключ, ADDRESS_ID

У меня вопрос: как мне все настроить, чтобы я мог создавать объекты LivedAt без необходимости извлечения объектов Address из базы данных?

У меня уже есть ADDRESS_ID , доступные из другой части моего процесса, и я не хочу, чтобы hibernate пытался получить адреса. Без доступного режима гибернации я бы просто сделал операторы «вставки», но я хочу сделать это в режиме гибернации. Я использую спящий w аннотаций.

1 Ответ

1 голос
/ 18 ноября 2011

Используйте Session.load() или EntityManager.getReference().Это просто вернет прокси к фактическому объекту Address, не загружая ничего из базы данных.

Address address = (Address) session.load(Address.class, addressId);
// address is a proxy. It will be lazy-loaded only if you invoke a method on it
...