`
tangyaliang11
  • 浏览: 736 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

use named parameters or JPA-style positional parameters instead.

阅读更多
WARN: [DEPRECATION] Encountered positional parameter near line 1, column 68 in HQL: [select o from net.zwkj.check.entity.Drug_blending o where measures=?]. 
Positional parameter are considered deprecated; use named parameters or JPA-style positional parameters instead.

从告警提示信息中可以看出,它建议用命名参数或者JPA样式占位符来代替老的占位符查询方法
老的?占位符查询代码片段:
Query query = sessionFactory.getCurrentSession().createQuery("select o from table o where measures=?");
query.setParameter(0, "测试");
正确的做法是:
一、命名参数方式
Query query = sessionFactory.getCurrentSession().createQuery("select o from table o where measures=:measures");
query.setParameter("measures", "测试");
二、JPA样式占位符
Query query = sessionFactory.getCurrentSession().createQuery("select o from table o where measures=?0");//0可以有多个
query.setParameter(0, "测试");//第一个参数0表示给占位符为?0的赋值,谨记(这不是下标,这不是下标),我写?9,那么参数传入的就是
query.setParameter(9, "测试")
还可以measures=?0 and abc=?0 //这样的setParameter一个参数即可
需要注意的是 Query 是org.hibernate.Query中的

每天进步一点点!!!
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics