首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot JPA左连接在3个表中

Spring Boot JPA左连接在3个表中
EN

Stack Overflow用户
提问于 2019-09-13 17:51:38
回答 1查看 3.2K关注 0票数 0

我正在使用Spring,并试图利用HQL在3个表之间设置一个左联接。

我拥有的三个实体是使用,SubscriptionPeriod和订阅。在实体类中设置了必要的Hibernate注释。

  • 使用和SubscriptionPeriod :多对一( SubscriptionPeriod可以有多种用法)
  • 订阅和SubscriptionPeriod :多对一(订阅可以有多个SubscriptionPeriod)。

目标:我想通过提供一个订阅id来获取所有的使用,并且使用有标题'NEW‘。而且,我想在一个数据库请求中完成它。

我有:

代码语言:javascript
复制
String hql =
                "SELECT DISTINCT u " +
                "FROM Usage u " +
                "LEFT JOIN u.subscriptionPeriod p " +
                "LEFT JOIN p.subscription s " +
                "WHERE s.remoteId = :remoteId AND u.title='NEW'";

目前,似乎有一个语法错误“从使用”。它写着“无法解决符号的使用”。

我怎样才能实现我想要的?我也愿意听取其他解决办法。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-09-13 19:28:22

我可能是以一种更复杂的方式思考的。这个方法上的@Query工作得很好。希望这对某人有用。

代码语言:javascript
复制
  @Query(
                "SELECT u " +
                "FROM usages u " +
                "LEFT JOIN u.subscriptionPeriod p " +
                "LEFT JOIN p.subscription s " +
                "WHERE u.paymentStatus = 'NEW' AND s.remoteId = :remoteId"
        )
  public List<Usage> find(@Param("remoteId") String param)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57928286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档