У меня есть объект A, связанный с объектом B с аннотацией @ManyToMany. Объект B имеет идентификатор и имя. Я бы получил только эти два свойства, не извлекая весь объект, я буду извлекать его позже, если мне это понадобится, чтобы не напрягать память.Hibernate - получить свойство объекта без получения всего объекта
Я пытался использовать @AccessType («свойство»), но он не работает (или, может быть, я использую его в неправильном направлении :))
Я не хочу использовать жадный fetchType.
Это @ManyToMany ассоциации:
@ManyToMany(fetch = FetchType.LAZY)
@AccessType("property")
@JoinTable(name = "C_CONTACT_USER_MANAGES_CONTACTS", catalog = "dbo", joinColumns = {
@JoinColumn(name = "CONTACT_USER_ID_FK", nullable = false, updatable = true) }, inverseJoinColumns = {
@JoinColumn(name = "CONTACT_ID_FK", nullable = false, updatable = true) })
public Set<ContactTO> getManagedContacts() {
return managedContacts;
}
public void setManagedContacts(Set<ContactTO> managedContacts) {
this.managedContacts = managedContacts;
}
где пользователь контакт управлять несколькими контактами.
И это ошибка я получаю (список управляемых контактов должны быть загружены, в самом начале, так что не любой сеанс открыт еще)
failed to lazily initialize a collection of role: org.un.cdb.to.ContactUserTO.managedContacts, could not initialize proxy - no Session
Любая идея?
Благодаря
что-то не только с помощью запроса? 'SELECT user.managedContacts.id, user.managedContacts.name FROM ContactUserTO user' – beerbajay
без какого-либо соединения? – SG87
Вы можете перемещать вложенные объекты с помощью JPQL. Однако я не тестировал именно этот синтаксис. – beerbajay