我们正在从Dropwizard 0.9.2迁移到1.1.0,其中包括从Hibernate 4.3.11迁移到Hibernate 5.2.8。
在会话结束时,我们需要向PostgresQL数据库发出SQL命令DISCARD ALL
,该数据库曾经使用过简单的
session.createSqlQuery("DISCARD ALL").executeUpdate();
在交易之外。 PostgresQL禁止在事务块中运行此命令。
Hibernate 5抱怨TransactionRequiredException: Executing an update/delete query
。
我可以使用Hibernate 5在事务之外发出这样的命令,还是需要使用session.doWork(...)来求助于JDBC?
我们正在手动创建所有交易(使用session.getTransaction()。begin()),如果该信息相关,则不使用事务管理器。