[英]JPQL Query with entity constructor
我在構建一個查詢時遇到了問題,該查詢按“活動”列對“Smoke”實體進行分組並對它們的“數量”求和。 詢問:
@Query(value = "SELECT new com.eminyilmazz.smoketracker.dto.ActivityBasedQuantity(s.activity, SUM(s.quantity)) FROM smoke s WHERE s.smoked_date BETWEEN :beginDate AND :endDate GROUP BY s.activity", nativeQuery = true)
List<ActivityBasedQuantity> getTotalQuantityGroupedByActivityWithMinuteInterval(@Param("beginDate")LocalDateTime beginDate, @Param("endDate") LocalDateTime endDate);
數據傳輸協議:
public class ActivityBasedQuantity {
private String activity;
private Long quantity;
public ActivityBasedQuantity(String activity, Long quantity) {
this.activity = activity;
this.quantity = quantity;
}
錯誤中的第一行:
org.springframework.dao.InvalidDataAccessResourceUsageException: JDBC exception executing SQL [SELECT new com.eminyilmazz.smoketracker.dto.ActivityBasedQuantity(s.activity, SUM(s.quantity)) FROM smoke s WHERE s.smoked_date BETWEEN ? AND ? GROUP BY s.activity]; SQL [n/a]
我已經嘗試刪除此 stackoverflow 問題中建議的“nativeQuery = true”,但它會拋出一個錯誤,指出 spring bean factory 和 hibernate 無法解析“smoke”表及其屬性。
修復了這些更改的問題;
將“煙”替換為“煙”(打字錯誤)
刪除了“nativeQuery = true”
@Query("SELECT new com.eminyilmazz.smoketracker.dto.ActivityBasedQuantity(s.activity, SUM(s.quantity)) FROM Smoke s WHERE s.smokedDate BETWEEN :beginDate AND :endDate GROUP BY s.activity")
List<ActivityBasedQuantity> getTotalQuantityGroupedByActivityWithMinuteInterval(@Param("beginDate")LocalDateTime beginDate, @Param("endDate") LocalDateTime endDate);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.