【问题标题】:Spring Data JPA Fetch from one table using the relationship tableSpring Data JPA 使用关系表从一个表中获取
【发布时间】:2017-04-12 21:11:57
【问题描述】:

这是我的 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;
    } 

【问题讨论】:

  • 到目前为止您到底尝试了什么?以及您需要解决哪一层?
  • 您确定您的映射正确吗?当你的映射是@ManyToOne 时,为什么你有一个Group 的列表。 Many 用户可以属于One 组。

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


【解决方案1】:

我相信你也在使用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 对象。

【讨论】:

  • 是否可以不使用 JPQL 或 SQL 查询?
猜你喜欢
  • 2016-02-08
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 2018-04-14
  • 2019-07-26
  • 2018-11-01
  • 1970-01-01
  • 2019-11-18
相关资源
最近更新 更多