簡體   English   中英

使用更新命名查詢時,如何解決JPA / Hibernate中的“封裝表達式丟失”錯誤?

[英]How to fix “The Encapsulated Expression is Missing” error in JPA/Hibernate while using Update Named Query?

編寫命名查詢時,我遇到了缺少表達式的封裝表達式。

int a = em.createQuery("UPDATE MyProsess d SET d.updateDate = current_date() WHERE d.personId = :personId")

在此處輸入圖片說明

即使當我將多個參數傳遞給上述查詢時,它也會出現一些新錯誤。 例如

int a = em.createQuery("UPDATE MyProsess d SET d.updateDate = current_date(), d.status=:stat WHERE d.personId = :personId")

在此處輸入圖片說明

任何人都可以建議如何解決此問題?

好,我知道了。 請用“ current_date”替換current_date()刪除方括號,我認為HQL無法使用方括號識別它。 現在在您的實體中有java.util.Date,而current_date將返回java.sql.Date,這需要轉換。 使用@Temporal(TemporalType.Date)批注標記屬性updateDate以確保平滑轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM