hibernatesql参数
A. Hibernate4 升级到Hibernate5 中 sql查询注意事项
在 Hibernate4 中,利用原生宏数SQL语句查询时,
1、可使用Session.createSQLQuery(sql)建立Qurey(org.hibernate.Query),
2、可使用Query.setParameter(int index, Object obj),对sql语句中的参数根据位置进行参数值动态绑定;
升级到 Hibernate5 后
1、org.hibernate.Query被标记为@Deprecated
2、Session().createSQLQuery(sql)返回类型为org.hibernate.query.Query;
3、并且Session().createSQLQuery也已经被标记为@Deprecated;
4、可使用Session().createNativeQuery(sql)代替createSQLQuery。
5、createNativeQuery返回的Query, 不可 通过setParameter(int index, Object obj) 根据位置 进行参数值动态绑定碰绝穗; 只可以 通过setParameter(String paramname, Object obj) 按参数名称绑定 。
6、createNativeQuery(sql)中的sql语句中的 查询笑卜占位符
只可使用 命名参数 方式进行编写。
上问错误例子中,将导致如下错误:
B. Hibernate调用存储过程,使用SQLQuery的方式,请问如果返回参数是CURSOR,怎么写呢
我使用的oracle
proc.registerOutParameter(2, OracleTypes.CURSOR);
不过第一个数好像是从1开始的吧
C. 如何让hibernate显示执行sql的参数
试试
log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
log4j的级别,要对应
更早期的
log4j.logger.org.hibernate.type=TRACE
log4j.logger.org.hibernate.sql=TRACE