Hql参数占位符使用(转+整理)
在Hibernate 4版本中,对于Hql有一点点改变,如果你还是按照以前的方式去编写HQL Query query = sessionFactory.openSession().createQuery("from User u where u.name = ?") .setParamter(,"line");就会得到一个警告。
得到的警告: 
  [DEPRECATION] Encountered positional parameter near line 1,
column 95.  Positional parameter are considered deprecated; use named
parameters or JPA-style positional parameters instead.
//按上面提示的意思,它不提倡我们用这样的方式适用占位符,而是建议用JPA或者命名参数的占位符:
1: 命名参数的方式
Query query = sessionFactory.openSession().createQuery("from User u where u.name =:name");
query.setParamter("name","line");
2: JPA(java persistens api)的方式
参考资料:https://hibernate.atlassian.net/browse/HHH-8012?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
// 有问题的jpa方式
Query query = sessionFactory.openSession().createQuery("from User u where u.name =?0")
query.setParamter(,"line"); //?后面的数字是可以随意的,不必要从0开始
上面的方式会得到一个异常信息:
  threw exception [Request processing failed; nested exception is org.hibernate.QueryParameterException: Position beyond number of declared ordinal parameters. Remember that ordinal parameters are 1-based! Position: 2] with root cause
  org.hibernate.QueryParameterException:
 Position beyond number of declared ordinal parameters. Remember that
ordinal parameters are 1-based! Position: 2 
这是由于Query是有hibernate封装好的session中获取的,所以我们不能按照jpa的方式来写:
// 调用的是setParmter(string,string)的方法,而不是setParmter(int,string)
Query query = sessionFactory.openSession().createQuery("from User u where u.name =?0")
query.setParamter("","line"); //?后面的数字是可以随意的,不必要从0开
3:more things
转+整理自:Hibernate4 HQL查询占位符的问题 https://my.oschina.net/line926/blog/202869
Hql参数占位符使用(转+整理)的更多相关文章
- Hibernate HQL基础 使用参数占位符
		
在HQL中有两种方法实现使用参数占用符 1.使用? 使用?设置参数占位符,之后通过setString()和setInteger()等方法为其赋值.如: Query query = session.cr ...
 - Hql中占位符(转)
		
在新的Hibernate 4版本中,对于Hql有一点点改变,如果你还是按照以前的方式去编写HQL并且用了以下占位符的方式,就会得到一个警告. 参考资料:https://hibernate.atlass ...
 - 。。。JDBC里面的sql与hibernate里面的hql有关占位符"?"的总结。。。
		
今天在看Hibernate的时候,似乎又有了一些收获的东东,嘻嘻... 我记得很清楚:以前用JDBC操作数据库的时候是这样的: String sql = "select * from use ...
 - Android string资源 包含 数学符号等特殊字符 及 参数占位符
		
定义:<?xml version="1.0" encoding="utf-8"?><resources> <string n ...
 - java:Hibernate框架3(使用Myeclipse逆向工程生成实体和配置信息,hql语句各种查询(使用hibernate执行原生SQL语句,占位符和命名参数,封装Vo查询多个属性,聚合函数,链接查询,命名查询),Criteria)
		
1.使用Myeclipse逆向工程生成实体和配置信息: 步骤1:配置MyEclipse Database Explorer: 步骤2:为项目添加hibernate的依赖: 此处打开后,点击next进入 ...
 - hibernate查询语句hql中的占位符?参数与命名参数:name设值方式搞混
		
先贴出异常 Struts has detected an unhandled exception: Messages: Position beyond number of declared ordin ...
 - 【SpringMVC】SpringMVC系列3之@PathVariable映射URL占位符参数
		
3.@PathVariable映射URL占位符参数 3.1.概述 带占位符的 URL 是 Spring3.0 新增的功能,该功能在SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义. ...
 - slf4j中的Logger 使用占位符{} 来传入参数记录日志信息
		
首先要导入 slf4j包中的2个类 import org.slf4j.Logger;import org.slf4j.LoggerFactory; 再定义如下 private final static ...
 - Hibernate4.1之后关于占位符的问题
		
hibernate 4.1之后对于HQL中查询参数的占位符做了改进,如果仍然用老式的占位符会有类似如下的告警信息 [main] WARN [org.hibernate.hql.internal.ast ...
 
随机推荐
- Android平台抓取native crash log
			
Android开发中,在Java层可以方便的捕获crashlog,但对于 Native 层的 crashlog 通常无法直接获取,只能通过系统的logcat来分析crash日志. 做过 Linux 和 ...
 - Java单例模式的线程安全问题
			
单例模式有两种书写模式:饿汉式和懒汉式. 1.饿汉式 class Single{ private final static Single s = new Single(); private Singl ...
 - 自学Android的第一个小程序(小布局、button点击事件、toast弹出)
			
因为上班,学习时间有限,昨晚才根据教程写了一个小程序,今天忙里偷闲写一下如何实现的,来加深一下印象. 首先创建一个Android项目, 通过activity_xxx.xml布局文件来添加组件来达到自己 ...
 - SQL Server服务启动失败,错误代码:10048
			
今天打开电脑后遇到了一个奇葩的问题,启动Sql Server服务时,出现如下图所示错误:
 - Reverse Linked List II java
			
public static ListNode reverseBetween(ListNode head, int m, int n) { ListNode pre=head,current=head, ...
 - div背景等比例缩小
			
background: url("http://www.asdear.com/Content/loginPage/newimages/nchina.png") 50% 0px no ...
 - Nginx反向代理匹配部分二级域名或二级目录配置
			
server { charset utf-; client_max_body_size 128M; # Add index.php to the list if you are using PHP i ...
 - 从汇编看c++中的虚拟继承及内存布局(二)
			
下面是c++源码: class Top {//虚基类 public: int i; Top(int ii) { i = ii; } virtual int getTop() { cout <&l ...
 - 初识HTML5
			
1, 新增canvas标签,允许通过JS在客户端完成2D绘图 2, 新增Video/Audio标签,能取代flash实现媒体播放 3, 新增本地存储功能:localStorage/sessionSto ...
 - 验证角谷猜想(hd1279)
			
验证角谷猜想 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...