簡體   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