随着Hibernate的更新,一些旧的调用方式进行了更新修改,以下是在Hibernate4.1之后做的更新。
1. 关于Positional (HQL) parameters
源文档:
HQL-style positional parameters follow JDBC positional parameter syntax. They are declared using ?
without a following ordinal. There is no way to relate two such positional parameters as being "the same" aside from binding the same value to each.
This form should be considered deprecated and may be removed in the near future.
旧的使用方式:
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占位符方式
String hql3 = "select t from Blog t where t.site=?0";
Query query3 = getSession().createQuery(hql3);
query2.setParameter("0", "micmiu.com");