安全处理 Hibernate“SET TRANSACTION 必须是事务的第一个语句”错误

发布于 2024-12-12 02:12:59 字数 189 浏览 0 评论 0原文

我不确定我是否问了正确的问题,提前道歉。

问题

我想知道是否可以使用某种类型的处理程序来回滚 Hibernate 中的错误事务。我遇到一个问题,每当从 Hibernate 进行批量更新期间出现错误时,就会出现“SET TRANSACTION 必须是事务的第一个语句”错误,并且此后我将无法执行任何其他查询。

谢谢 :)

I'm not sure if I'm asking the correct question to begin with, apologies in advanced.

Question

I am wondering if it is possible to have some type of handler to rollback an erroneous transaction in Hibernate. I am having a problem which, whenever an error comes up during a batch update from Hibernate the "SET TRANSACTION must be first statement of transaction" error comes up and I would not be able to do any other query after that.

Thanks
:)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小霸王臭丫头 2024-12-19 02:12:59

Hibernate没有自动事务管理系统,因此您必须自己发出开始、提交和回滚命令。

如果您使用的是 spring,那么使用 spring 事务管理会更容易 API

例如,

@Transactional
void updateFoo(Foo foo){
//do your stuff
}

在上面的示例中,一个新事务将在最后一行提交的 updateFoo() 方法的开头启动。如果中间出现任何问题,交易将被回滚。

Hibernate don't have an automatic transaction management system, so you have to issue the begin, commit and roll back commands by yourself.

If you are using spring this can be a lot more easier with spring transaction management API

For example,

@Transactional
void updateFoo(Foo foo){
//do your stuff
}

In the above example a new transaction will be started at the beginning of the updateFoo() method commited at the last line. If there is any problem in between the transaction will be rolled back.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文