Hibernate - 获取实体的属性而不获取整个实体

时间:2015-07-09 13:26:05

标签: java spring hibernate

我有一个对象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

有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

根据@ beerbajay的建议,我找到了解决方案:

select contacts.contactId, contacts.lastName, contacts.firstName 
from ContactUserTO contactUser join contactUser.managedContacts contacts 
where contactUserId := contactUserId

感谢您的帮助;)