不推荐使用 Hibernate 5.2.5.Final createSQLQuery() 方法
Posted
技术标签:
【中文标题】不推荐使用 Hibernate 5.2.5.Final createSQLQuery() 方法【英文标题】:Hibernate 5.2.5.Final createSQLQuery() method deprecated 【发布时间】:2017-05-03 03:13:40 【问题描述】:我在 Hibernate 中使用createSQL()
方法在我的数据库中进行插入操作。
我想要做的是声明一个自定义 SQL 语句,以便我可以将 MD5()
函数应用于表上的字段。这就是为什么我不能简单地使用save(Object)
方法。
我收到来自 Eclipse IDE 的警告,上面写着:
The method createSQLQuery(String) from the type QueryProducer is deprecated.
尽管如此,插入操作仍按预期执行。
我在项目中使用的当前 Hibernate 版本是 5.2.5.Final。
所以,问题是:有没有其他方法可以在这个版本的 Hibernate 中实现同样的效果,以摆脱那个烦人的警告?
我也知道添加@SuppressWarnings("deprecation")
注释会解决问题,但我不确定它是否会在未来引起任何问题。
值得一提的是,我是一个使用这个框架的初学者。
【问题讨论】:
【参考方案1】:已弃用的QueryProducer.createSQL(String)
的 javadoc 描述了改用什么:
已弃用。 (自 5.2 起)改用
createNativeQuery(String)
为给定的 SQL 查询字符串创建一个NativeQuery
实例。
只添加@SuppressWarnings("deprecation")
通常不是一个好主意,
因为你将来可能会遇到问题;即当您移动到更新的 Hibernate 版本时,现在已弃用的方法将被删除。
【讨论】:
以上是关于不推荐使用 Hibernate 5.2.5.Final createSQLQuery() 方法的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Hibernate 5 正确创建 JPQL 查询(不推荐使用查询类型)
不推荐使用 Hibernate 5.2.5.Final createSQLQuery() 方法
为啥在 Hibernate 中不推荐“hibernate.connection.autocommit = true”?