Hibernate占位符问题[use named parameters or JPA-style positional parameters instead.]
生活随笔
收集整理的這篇文章主要介紹了
Hibernate占位符问题[use named parameters or JPA-style positional parameters instead.]
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
hibernate 4.1之后對于HQL中查詢參數(shù)的占位符做了改進,如果仍然用老式的占位符會有類似如下的告警信息:
[main] WARN [org.hibernate.hql.internal.ast.HqlSqlWalker] – [DEPRECATION] Encountered positional parameter near line 1, column 95. Positional parameter are considered deprecated; use named parameters or JPA-style positional parameters instead.從告警提示信息中可以看出,它建議用命名參數(shù)或者JPA占位符兩中種方法來代替老的占位符查詢方法。
比如老的占位符查詢代碼片段:
String hql = "select t from Blog t where t.site=?"; Query query = getSession().createQuery(hql); query.setParameter(0, "micmiu.com");方法一:改成命名參數(shù)的方式:
//命名參數(shù)的方式 String hql2 = "select t from Blog t where t.site=:site"; Query query2 = getSession().createQuery(hql2); query2.setParameter("site", "micmiu.com");方法二:改成JPA占位符的方式:
//JPA占位符方式 String hql3 = "select t from Blog t where t.site=?0"; Query query3 = getSession().createQuery(hql3); query2.setParameter(0, "micmiu.com");其中"?"后面的"0"代表索引位置,在HQL語句中可重復出現(xiàn),并不一定要從0開始,可以是任何數(shù)字,只是參數(shù)要與其對應上。
采用后面兩種查詢方法修改后就不會有告警信息產生了。
總結
以上是生活随笔為你收集整理的Hibernate占位符问题[use named parameters or JPA-style positional parameters instead.]的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于 form表单 嵌套问题的解决方案
- 下一篇: Hibernate实现limit查询报错