到目前为止,我在Spring HibernateTemplate中使用了findByNamedQueryAndNamedParam来处理namedqueries。 Spring5 deprecated this method ..
将来它可能会被删除,findByNamedQueryAndNamedParam有哪些替代解决方案? 请帮我这方面..
示例:
public Child getChildByNameWithToys(String childName) {
return (Child) getHibernateTemplate().findByNamedQueryAndNamedParam(
Child.Constants.FIND_CHILD_BY_NAME_QUERY,
Child.Constants.CHILD_NAME_PARAM, childName).get(0);
}
答案 0 :(得分:1)
上面的代码应该改为使用HibernateCallback,如下所示。
public Child getChildByNameWithToys(String childName) {
List<Child> list = getHibernateTemplate().execute(new HibernateCallback<List<Child>>() {
public List<Child> doInHibernate(Session session) throws HibernateException {
return getSession().getNamedQuery(Child.Constants.FIND_CHILD_BY_NAME_QUERY)
.setParameter(Child.Constants.CHILD_NAME_PARAM, childName)
.list();
}
});
if (list != null && list.size() > 0)
return list.get(0);
else return null;
}