0

Java EE アプリケーションに「次のメカニズム」を実装しようとしています。とりわけ、ユーザーがフォローしているプロファイルのリストであるリストを含むエンティティ プロファイルがあります。ルリレーションは(@OneToMany)です。

すべてが問題なく、素晴らしい音ですが、問題があります。そのようなクエリ:

Query q = em.createQuery("SELECT p FROM Profile p WHERE p.id =:custId");

プロファイル p を返します。これまでのところ、問題はありません。しかし、フォローしているユーザーの完全なアクセス権、およびフォローしているすべてのユーザーのフォローなどに完全にアクセスできることに気付きました。どうしようもありません。

ID のみを含む配列内の List を置き換えることができますが、それが唯一の選択肢である場合に限ります。何か案は?私のフォローしているすべてのユーザーのフォローリストを彼女に取らせないことで、クエリを「停止」できますか?

4

1 に答える 1

0

API をリファクタリングする必要があると思います。フォロワーのリストをプロファイル クラスに保存しないでください。たとえば、ProfileService などのサービスを作成し、特定のプロファイルのフォロワーのリストにアクセスしたいときはいつでもそれを呼び出します。

public class ProfileService {

    public List<Profile> getFollowers(Profile profile) {
       Query q = em.createQuery("SELECT p FROM Profile p WHERE p.id =:custId");
       .....
    }
}
于 2016-02-17T21:11:23.357 に答える