【问题标题】:Spring data JPA JPQL query on child propertySpring data JPA JPQL对子属性的查询
【发布时间】:2015-10-30 01:18:01
【问题描述】:

我正在使用 spring-data jpa。当使用子对象属性查询父对象时,我期待父对象具有聚合的子对象。我在用户和电话之间有 OneToMany 关系。只需键入部分代码。

@Query(select u from User u inner join u.phone ph where ph.active=:active)
Page<User> getAllUsers(@Param("active") int active);

@Entity
User{  
  @OneToMany(fetch=FetchType.LAZY)
  List<Phone> phone;
}

@Entity
Phone{
  @ManyToOne
  User user;
}

我的查询根据活动电话数量返回多个用户对象。我期待一个用户对象和列表中的所有聚合电话对象作为用户对象的一部分。我的假设是错误的还是我做错了什么?

【问题讨论】:

  • 如果添加DISTINCT: Select distinct u from User u ... 会怎样?
  • @RobertNiestroj,感谢您解决了多对象问题,现在我只有一个。我想知道这是解决方法还是真正的解决方案?

标签: jpa spring-data-jpa


【解决方案1】:

试试:

@Query(select distinct u from User u inner join u.phone ph where ph.active=:active)
Page<User> getAllUsers(@Param("active") int active);

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-12-23
  • 2017-11-30
  • 2015-03-18
  • 1970-01-01
  • 2017-11-28
  • 2019-02-28
  • 2020-06-05
相关资源
最近更新 更多