2012-02-15 19 views
0

私は1つの小さなものに積み重ねました。hibernate results join left

私は、データベース内に2つのテーブルがあります - UserとUserReferenceです。

UserReference で私はユーザーIDに関連しているフィールドユーザーIDを、持っています。

"FROM User as user left join fetch user.userReferences WHERE login='"+login+"' or email='"+login+"' AND password = '" +password+ "'" ; 

クエリは大丈夫です、私は結果を得る:

は、私は、MySQLと左に参加するクエリを持っています。

結果をコントローラに送信し、リストに変更します。query.list();

コントローラでは、結果を受信し、ユーザリストにプッシュします。

@OneToMany(fetch = FetchType.LAZY, mappedBy = "user") 
public Set<UserReference> getUserReferences() { 
    return this.userReferences; 
} 

そして今 - 私はテーブルUserReferenceからデータを取得したい:私はテーブルユーザーテーブルで

ユーザーからの情報を取得することができますユーザーリストから

ありユーザリストにあります。私の質問にはJOINがあるためです。

どうすればいいですか?

私はこのような何かしようとしていた。

List<UserReference> userReference = (List<UserReference>) user.get(0).getUserReferences(); 
      System.out.println(userReference.get(0).getAge()); 

をしかし、それは動作しません。

私を助けることができますか?

答えて

1

Setをリストにキャストすることはできません。代わりにsetを繰り返して、userRefencesを取得します。