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かを確認してください。この場合、単純なチェックのためだけにすべてのユーザーをロードすることは避けます。
私の質問は、それを行うための良い戦略だと思いますか? そうでない場合は、さらに情報やその他の戦略を教えていただけますか?
グーグルで検索しましたが、良い結果は見つかりませんでした。
前もって感謝します、 シメオン