Spring Boot JPA 子查询与圆括号表达式

huangapple 未分类评论52阅读模式
英文:

Spring boot JPA subquery with round brackets expression

问题

@Query(value = "SELECT dm, ml, items " +
      "FROM DeliveryMission dm " +
      "INNER JOIN MissionLog ml ON ml.deliveryMission.id = dm.id " +
      "INNER JOIN (" +
      "  SELECT di.deliveryMission.id, GROUP_CONCAT(di.deliverySpot.id) as spotList, GROUP_CONCAT(di.receptionNo) as recpNo " +
      "  FROM DeliveryItem di GROUP BY di.deliveryMission.id" +
      ") AS items ON items.id = dm.id ")

Edit 1: 我的问题是如何在 JPA 查询中表示这些 ()

Edit 2: 关于我在 JPA Spring 数据中关于子查询的问题。不,无法在 JPQL 查询的选择子句中使用子查询。

英文:

I am new with Spring JPA. I have a table, try to join it with a custom table and convert this query to JPA query:

SELECT *
from delivery_missions dm 
inner join (
  select di.delivery_mission_id , GROUP_CONCAT(di.delivery_spot_id) as spot_list, GROUP_CONCAT(di.reception_no) as recp_no
  from delivery_items di GROUP by di.delivery_mission_id 
)  as items on items.delivery_mission_id = dm.id 
GROUP by dm.id

Below is the query I'm writing but I have problem when

@Query(value = "SELECT dm, ml, items " +
      "from DeliveryMission dm " +
      "inner join MissionLog ml on ml.deliveryMission.id = dm.id " +
      "inner join ( " + //error here with left parenthesis
      "  select di.delivery_mission_id , GROUP_CONCAT(di.delivery_spot_id) as spot_list, GROUP_CONCAT(di.reception_no) as recp_no " +
      "  from delivery_items di GROUP by di.delivery_mission_id  " +
      ")  as items on items.delivery_mission_id = dm.id ")

My solution is try to use with nativeQuery (or convert to mybatis). But type of JPA query look better for me.

Edit 1: My question is how to express this ( and ) in JPA query.

Edit 2: Relate to my question about subquery in JPA Spring data.
No, it is not possible to have subquery in the select clause in JPQL query.
.

huangapple
  • 本文由 发表于 2020年6月29日 12:50:23
  • 转载请务必保留本文链接:https://java.coder-hub.com/62631408.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定