2016-11-29 8 views
1

ここは私のUSERエンティティで、USER_GROUPはGROUPを持つリレーションテーブルです。 すべてのユーザーを取得するにはgroupid =?Spring Data JAPPリレーションシップテーブルを使用して1つのテーブルからフェッチする

@Entity 
    @Table(name="USER") 
    public class User implements Serializable { 
     @Id Long userId; 
     @ManyToOne 
     @JoinTable(name = "USER_GROUP", 
       joinColumns = @JoinColumn(name = "userid"), 
       inverseJoinColumns = @JoinColumn(name = "groupid")) 
     private List<Group> groups; 
    } 
+0

あなたはこれまでに何を試みましたか?どの層にソリューションが必要ですか? – ScanQR

+0

あなたのマッピングは正しいですか?マッピングが '@ ManyToOne'のときに' Group'のリストを持っているのはなぜですか? 'Many'ユーザは' One'グループに属することができます。 –

答えて

0

あなたはUserRepositoryも使用していると思います。 UserRepositoryでは、このようなデータをすべて取得するメソッドを作成できます。

public interface UserRepository extends JpaRepository<User, Long>{ 

    @Query(value="Select u from User u inner join u.groups group where group.groupid = :groupId ") 
    List<User> findAllByGroupId(@Param("groupId") long groupId) 

} 

これは動作するはずです。しかし、私はそれをテストしていない。

DISTINCTを使用すると、一意のUserオブジェクトのみを選択できます。

+0

JPQLやSQLのクエリがなくても可能ですか? – touchchandra

関連する問題