java - Spring Boot 1.2.5.RELEASE @Transaction

标签 java spring spring-boot spring-data spring-data-jpa

升级到 Spring Boot 1.2.5 后,尝试执行以下查询时会抛出异常。

由以下原因引起:javax.persistence.TransactionRequiredException:执行更新/删除查询

@Modifying
@Transactional
@Query(value = "insert into some_table (some_id) VALUES (?1)", nativeQuery = true)
public void insertSomeTable(long some_id);

就好像 @Transactional 注释被忽略了。对于 Spring Boot 1.2.1,这是可行的。有什么想法吗?

最佳答案

tl;博士

您显然正在使用 JTA 1.2 的 @javax.transaction.Transactional ,不幸的是,Boot 版本包含的 Spring Data 版本中对此的支持已被破坏。解决方法是使用 Spring Framework 的 @org.springframework.transaction.Transactional

详细信息

该 Spring Boot 版本附带的 Spring Data 版本修复了之前存在的事务错误。这有效地“修复”了由 Spring Data 控制的存储库的事务处理。

不幸的是,您显然正在使用 JTA 1.2 的 @Transactional 支持的切换。我已经修复了DATACMNS-732 (将包含在 Fowler SR2 和 Gosling RC1 中)并创建了 ticket in Spring Framework改进库内的场景(由于需要复制类,我们基本上没有获得 JTA 1.2 支持)。

关于java - Spring Boot 1.2.5.RELEASE @Transaction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31440865/

相关文章:

java - 无法发送带附件的邮件

java - 将模型注入(inject)到具有 @Autowired 注释的 bean 中

java - 使用 spring-boot 和 Weblogic 公开 SOAP Webservice

java - 无法在 jhipster 中访问 H2 控制台

java - 当属性不存在或等于 0 时默认值的 SpEL (Spring) 语法

java - 关闭应用程序后的 Android HWUI 错误

java - 如何将普通List变成ImmutableList?

java/javascript 在线读取XML文件

java - 如何从 pom 编辑器中删除 org.apache.maven.plugin.jar.JarMojo 错误

java - Spring AOP - 未调用切入点/拦截器