2010-05-11 18 views
3

我使用JPA 1.0与hibernate作为我的提供者。在entitymanager事务中,如果运行一系列本机查询(包括DELETE sql语句)并发生错误,那么本机查询是否会在错误上回滚?在JPA中,本机查询是否会发生回滚?

我遇到了一个oracle数据库中的死锁问题,我注意到,即使部分事务回滚了,它仍然使数据库不一致。我想知道是否这种不一致是由于一个事务成功但另一个事务已经回滚但只能达到某个点的事实?

谢谢..

+0

您是使用Spring来设置会话,还是自己创建事务? – aperkins 2010-05-11 19:24:27

+0

PS:我没有使用任何并发锁等 – niran 2010-05-11 19:37:34

+0

没有Spring框架.. – niran 2010-05-11 19:38:04

回答

3

回滚不回滚“JPQL查询”具体而言,它回滚的SQL语句,这包括从“本机查询” SQL语句。

+0

谢谢。我会写几个测试用例并看看。这是我最初的想法。 – niran 2010-05-12 02:36:57

1

是的。发生错误时,将回滚JPQL和本机SQL查询。