Hibernate占位符问题[use named parameters or JPA-style positional parameters instead.]
来源:互联网 发布:双色球查询软件 编辑:程序博客网 时间:2024/06/09 15:06
hibernate 4.1之后对于HQL中查询参数的占位符做了改进,如果仍然用老式的占位符会有类似如下的告警信息:
[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.
从告警提示信息中可以看出,它建议用命名参数或者JPA占位符两中种方法来代替老的占位符查询方法。
比如老的占位符查询代码片段:
String hql = "select t from Blog t where t.site=?";Query query = getSession().createQuery(hql);query.setParameter(0, "micmiu.com");
方法一:改成命名参数的方式:
//命名参数的方式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语句中可重复出现,并不一定要从0开始,可以是任何数字,只是参数要与其对应上。
采用后面两种查询方法修改后就不会有告警信息产生了。
- Hibernate占位符问题[use named parameters or JPA-style positional parameters instead.]
- Hibernate占位符问题[use named parameters or JPA-style positional parameters instead.]
- Positional parameter are considered deprecated; use named parameters or JPA-style positional paramet
- Positional parameter are considered deprecated; use named parameters or JPA-style positional parame
- Positional parameter are considered deprecated; use named parameters or JPA-style positional parame
- Positional parameter are considered deprecated; use named parameters or JPA-style positional parame
- Named parameters
- Bash-Positional Parameters
- hibernate : No positional parameters in query 错误解决办法
- org.hibernate.QueryException: Expected positional parameter count: 2, actual parameters:
- Hibernate HQL[DEPRECATION] Encountered positional parameter 占位符问题
- HQL中设置参数出现 cannot define positional parameter after any named parameters have been defined
- ThinkPHP5更新数据遇到SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters
- cannot define positional parameter after any named parameters have been defined
- Named Parameters for PreparedStatement
- kettle Named Parameters
- C# 4.0 Optional Parameters 和Named Parameters
- Hibernate QueryException:Not all named parameters have been set:
- c#文件操作
- 认识和理解C++类(或C++类浅识)
- 细说rs.next()
- HTML5教程之video标签的应用
- c++编程碰到的奇怪问题与解决
- Hibernate占位符问题[use named parameters or JPA-style positional parameters instead.]
- C++中虚析构函数的作用
- C++ 一些常用的函数以及头文件(一)
- QQ通信机制
- Flex的默认主程序
- FRM-92101:forms Server在启动过程中失败
- Redis实战之征服 Redis + Jedis + Spring (二)
- C#中窗体使用Invoke和BeginInvoke详解
- Power Strings(kmp 重复子串)