Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException

用spring data jpa写一个原生sql时,报错,语句什么的都没有错,update后边我也用的是实体类的名(有些小伙伴可能惯性的直接用了数据库表的名),可就是一直报Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query这个鬼东西,看了下日志,原来是事务问题,只要在调用了这个Repository 更新的方法前方加个@Transactional注解就ok了:

Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException_第1张图片

Repository的内容如下,注意hibernate中update语句是不能返回boolean的,那就用个Integer:

Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException_第2张图片

但是如果你调用这个Repository 更新的方法是在Test中,最后是看不到效果的,因为Test中的方法一旦加了@Transactional最后是要回滚的,不会修改到数据库

 

你可能感兴趣的:(java)