Java 在事务的中间更新数据库,可能吗?
上面的代码给出了javax.persistence.TransactionRequiredException异常Java 在事务的中间更新数据库,可能吗?,java,hibernate,jpa,transactions,Java,Hibernate,Jpa,Transactions,上面的代码给出了javax.persistence.TransactionRequiredException异常 在事务的中间更新数据库,可能吗? 有什么建议吗 谢谢 A 我只是想知道这是否是一个运行时异常,它是由持久性提供程序在需要事务但未激活时引发的。需要事务,因为start方法被注释为事务性。为了消除该异常,您必须调查为什么在事务上下文之外调用该行 在(不同的)事务期间可能会进行数据库更新。取决于活动事务锁定的表和事务策略。但在这种情况下,似乎需要在输入start方法之前激活事务 使用J
在事务的中间更新数据库,可能吗? 有什么建议吗
谢谢 A我只是想知道这是否是一个运行时异常,它是由持久性提供程序在需要事务但未激活时引发的。需要事务,因为
start
方法被注释为事务性。为了消除该异常,您必须调查为什么在事务上下文之外调用该行
在(不同的)事务期间可能会进行数据库更新。取决于活动事务锁定的表和事务策略。但在这种情况下,似乎需要在输入start
方法之前激活事务
使用JPA,您可以执行以下操作:
@Transactional
public void start() {
...
...
int result = entityManager
.createQuery("update Users set name=" + value + " where user.id=5").executeUpdate();
.....
}
注意-这接近伪代码,本例中缺少异常处理。这是一个运行时异常,当需要事务但未激活时,持久性提供程序会引发该异常。需要事务,因为
start
方法被注释为事务性。为了消除该异常,您必须调查为什么在事务上下文之外调用该行
在(不同的)事务期间可能会进行数据库更新。取决于活动事务锁定的表和事务策略。但在这种情况下,似乎需要在输入start
方法之前激活事务
使用JPA,您可以执行以下操作:
@Transactional
public void start() {
...
...
int result = entityManager
.createQuery("update Users set name=" + value + " where user.id=5").executeUpdate();
.....
}
注意-这接近伪代码,本例中缺少异常处理。如何处理?请举个例子。。。谢谢,怎么办?请举个例子。。。谢谢