0

有时在 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。在这种情况下,我避免加载所有用户只是为了进行简单的检查。

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

我在谷歌上搜索,但没有找到好的结果。

在此先感谢,西蒙

4

0 回答 0