簡體   English   中英

如何從 Hibernate/Spring Jpa 在 mysql 數據庫中添加日期

[英]How to add date in mysql database from Hibernate/Spring Jpa

我使用 spring 引導,我想將 1 年添加到 mysql 數據庫中的特定列

String queryRecherche = "UPDATE myTable t SET t.dateDebut = DATE_ADD(t.dateDebut, INTERVAL 1 YEAR) WHERE.id = 3 ";
Query query = em.createQuery(queryRecherche);;
query.executeUpdate();

但我收到以下錯誤:

org.hibernate.query.sqm.ParsingException: line 1:66 no viable alternative at input 'DATE_ADD(t.dateDebut,INTERVAL1'

你有什么建議嗎?

您使用的是 Hibernate 6(我可以通過錯誤消息判斷),因此要使用的正確 HQL 語法是:

UPDATE MyEntity t SET t.dateDebut = t.dateDebut + 1 year WHERE t.id = 3

您的查詢中出現了三個錯誤:

  1. 您在UPDATE子句中引用了表的名稱而不是實體的名稱 class
  2. 您使用了不可移植的 MySQL DATE_ADD function 而不是此處描述的可移植 HQL 日期/時間算法。
  3. 您的WHERE子句的語法是亂碼。

也許你的意思是這是一個原生的 SQL 查詢,在這種情況下你調用了錯誤的方法Session 但是上面的查詢不需要使用原生的 SQL。 如您所見,HQL 完全能夠表達該查詢。

您可以通過 createNativeQuery 直接使用 SQL,或注冊一個新的 function,如本所示,以從 HQL 調用它

暫無
暫無

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

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