0

ORM (EclipseLink など) では、次のような 2 つのエンティティ間に関係がある場合があります。

public class ContactGroup {

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

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