繁体   English   中英

Spring Boot JPA LEFT JOIN在3表中

[英]Spring Boot JPA LEFT JOIN in 3 tables

我正在使用Spring Boot,并尝试利用HQL在3个表之间建立一个LEFT JOIN。

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

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

目标:我想通过提供订阅ID来获取所有用法,用法的标题为“ NEW”。 而且,我想在单个数据库请求中完成此操作

我有:

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'";

当前,“ FROM使用情况”周围似乎存在语法错误。 它显示为“无法解析符号用法”

我怎样才能实现自己想要的? 我也乐于听取其他解决方案。 谢谢。

我可能以一种更复杂的方式来思考它。 这个@Query方法非常@Query 希望这对某人有用。

  @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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM