【发布时间】:2021-11-10 18:59:00
【问题描述】:
我使用的是 Hibernate 5.5,但在使用旧版 Hibernate 生成的通用 DAO 中使用不推荐使用的类型进行查询时遇到了麻烦。
我在通用 dao 类中的 createQuery 方法:
protected Query<?> createQuery(String query) {
return getSession().createQuery(query);
}
此方法中没有已弃用的警报,但当我要在此代码中使用它时,我会收到已弃用的警报消息:
//find a user by name
public List<User> findByName(String name){
Query<User> q = getSession().createQuery("from User where lower(nome) like lower(?)");
q.setString(0, "%" + name +"%");
return q.list();
}
在这里,我收到了 Query 类型及其 list() 方法中的已弃用警报。
为了不创建具有相同主题的另一个问题,我也在通用 dao 的其他方法中收到不推荐使用的警报:
protected Criteria createCriteria() {
return getSession().createCriteria(this.clazz);
}
这里createCriteria方法也被弃用了。
(getSession方法返回hibernateSessionFactory类的当前会话)
我想知道如何使用休眠 5 更新此代码,这样我就不会收到弃用的警报。
【问题讨论】:
标签: hibernate jpql dao deprecated