我剛剛將我的專案升級到 spring5,這導致代碼出現以下錯誤,該代碼在早期的 spring 版本中運行良好。
問題是 JPA 應該將 aNumber 映射到 ANumber 但它沒有這樣做,它將 ANumber 作為 ANumber 而不是導致此問題的 aNumber。
我看到 spring 團隊的一個執行緒,但在這里看不到解決方案:https : //github.com/spring-projects/spring-data-jpa/issues/1247
我試圖到處搜索,但沒有找到任何有用的東西。
域類:
@Data
@Entity
public class Statistics {
@Id
private Long id;
private String aNumber;
private Integer dispositionCode;
@CreatedDate
private OffsetDateTime created;
}
Repository 介面中的方法:
Optional<Statistics> findFirstByIdAndANumberAndDispositionCodeInOrderByCreatedDesc(Long id, String aNumber, Integer... dispositionCode);
注意:我知道 id 可以回傳唯一的結果只是為了制作我所做的更改的確切示例。
uj5u.com熱心網友回復:
在 JPA 版本升級后,我遇到了這個問題,其中說明所有名稱都正確且映射完美。
我找到的解決方案是在 spring 資料 JPA的@Query注釋中定義本機查詢,因為問題發生在 JPA 嘗試創建 JPA 命名查詢時。
@Query(nativeQuery = true, value = "Your Query here")
Optional<Statistics> findFirstByIdAndANumberAndDispositionCodeInOrderByCreatedDesc(Long id, String aNumber, Integer... dispositionCode);
這可能不是最好的解決方案,但在我的情況下,我不應該更改版本,因為它來自父 POM,這是我能做的最簡單的解決方案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/373508.html
上一篇:LockModeType.OPTIMISTIC和Mysql的默認隔離級別REPEATABLEREAD不能一起作業嗎?
下一篇:如何得到2個屬性相減的結果
