1

私はJPAを初めて使用するので、私の質問が基本的なように思えたらすみません。次のような他のエンティティのリストに関連する User というエンティティがあります。

@OneToMany(cascade = CascadeType.ALL , mappedBy = "user")
private List<session> sessionList;

コントローラー クラスでは、次のように RESTFull 方式で find メソッドを定義しました。

@GET
@Path("/Users")
@Produces("application/json")
public List<UserDevice> findAllUsers()
{
    return em.createQuery("SELECT u FROM User u").getResultList();
}

返された結果には、通常のユーザーのすべてのセッションが含まれていますが、ユーザーの基本情報 (すべての単純な列) を取得したいだけですが、結果は膨大になります。私の質問は、関連するエンティティを無視して、実際のエンティティの列だけを保持することは可能ですか? どうもありがとうございました

4

1 に答える 1

2

(を使用して)熱心にロードされたものとして関連付けを明示的にマップしない限り@OneToMany(fetch = FetchType.EAGER)、上記のクエリはユーザーのフィールドのみを返し、ユーザーのフィールドをロードしないようにする必要がありますsessionList

セッションがロードされている場合、アソシエーションは熱心にロードされているとマークされるか、のメソッドを呼び出してレイジーにロードしますList<Session>

于 2012-06-25T17:40:40.013 に答える