我有一个对象A使用@ManyToMany注释连接到对象B. obj B有一个Id和一个名字。 我会在没有获取整个对象的情况下检索这两个属性,如果我需要它而不是强调内存,我会稍后检索它。
我尝试使用@AccessType(“property”)但它不起作用(或者我可能以错误的方式使用它:))
我不想使用EAGER 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
有什么想法吗?
谢谢
答案 0 :(得分:0)
根据@ beerbajay的建议,我找到了解决方案:
select contacts.contactId, contacts.lastName, contacts.firstName
from ContactUserTO contactUser join contactUser.managedContacts contacts
where contactUserId := contactUserId
感谢您的帮助;)