在报错的方法上面加上事务即可。
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
此实例与Hibernate和Ibatis有所区别,通过JpaTemplate模板类进行如持久化等操作时必须有运行在事务环境中,否则可能抛出如下异常或警告:
- “javax.persistence.TransactionRequiredException:Executing an update/delete query”:表示没有事务支持,不能执行更新或删除操作;
- 警告“delaying identity-insert due to no transaction in progress”:需要在日志系统启动debug模式才能看到,表示在无事务环境中无法进行持久化,而选择了延迟标识插入。
以上异常和警告是没有事务造成的,也是最让人困惑的问题,需要大家注意。