我正在尝试将Hibernate与Spring集成。
这种方法有效:
@Override
public Animal get(long id) {
List list = getHibernateTemplate().find("from Animal where id=?", id);
return (Animal) list.get(0);
}
但我有一个
警告:[DEPRECATION]遇到位置参数......
因此,位置参数被视为已弃用;我必须使用命名参数或JPA风格的位置参数。
我怎样才能使用" getHibernateTemplate()"?
答案 0 :(得分:1)
要使用命名参数,您应该使用findByNamedParam,这个也适用:
@Override
public Animal get(long id) {
List list = this.getHibernateTemplate().findByNamedParam("from Animal where id=:id", "id", id);
return (Animal) list.get(0);
}
列出findByNamedParam(String queryString, String [] paramNames, 对象[]值) 抛出DataAccessException
执行HQL查询,将多个值绑定到查询字符串中的“:”命名参数。
参数:
queryString - 以Hibernate的查询语言
表示的查询paramNames - 参数名称
值 - 参数值
答案 1 :(得分:0)
您可以尝试以下代码
@Override
public Animal get(long id) {
String query = "from Animal where id=:id"
List list = getHibernateTemplate().findByNamedParam(query, "id", id);
return (Animal) list.get(0);
}