Spring Data JAP使用relationsip表从一个表中获取

时间:2016-11-29 01:21:56

标签: hibernate spring-data spring-data-jpa jpql many-to-one

这是我的USER实体,USER_GROUP是与GROUP的关系表。 如何获取groupid =?

的所有用户
    @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;
    } 

1 个答案:

答案 0 :(得分: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个对象。