有时在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。在这种情况下,我避免加载所有用户只是为了这个简单的检查。
我的问题是:您认为这是一个很好的策略吗?如果没有,你能提供更多信息或其他策略吗?
我正在使用谷歌搜索,但我没有找到好结果。提前致谢, 西蒙