JPA和EclipseLink:检查XXXtoMany关系中成员资格的最佳策略

时间:2012-12-11 17:41:21

标签: java jpa eclipselink

有时在ORM(如EclipseLink)中,当两个实体之间存在关系时,如

public class ContactGroup {

    @ManyToMany(fetch=FetchType.LAZY)
    private List<User> members = new ArrayList<User>();
}

如果用户是其成员,则进行简单检查(我在示例的上下文中讨论) 需要一个ContactGroup。我想这样做而不加载像

这样的所有成员

boolean isMemeber = contactGroup.getMembers()。contains(user);

我接下来做了:

SELECT contactGroup FROM ContactGroup contactGroup " + 
"WHERE contactGroup.id = ?1 " +
"AND ?2 MEMBER OF contactGroup.users"

并在我的DAO层中检查contactGroup是否为NULL或NO。在这种情况下,我避免加载所有用户只是为了这个简单的检查。

我的问题是:您认为这是一个很好的策略吗?如果没有,你能提供更多信息或其他策略吗?

我正在使用谷歌搜索,但我没有找到好结果。

提前致谢, 西蒙

0 个答案:

没有答案