我目前正在处理一个较旧的 Spring 项目(不是 Spring Boot)。这使用 spring-boot-dependencies 作为父 BOM。计划在不久的将来迁移到 SpringBoot。我们目前仍在使用 2.6.7 版本的依赖项。我现在想升级到 2.7.0。
我自己在 JPA 存储库中的查询有问题。该查询是一个仅执行选择的 JPQL 查询:
@Query("select x from y where y.date = (select max(tmp.date) from y tmp where y.thingId = tmp.thingId)")
运行查询时,抛出“没有可用的事务性 EntityManager”。如果我使用事务注释对存储库或方法进行注释,查询就会运行。但是,我很奇怪现在有这个必要吗?以前,可以在没有事务注释的情况下执行查询。这里有变化吗?我在发行说明中找不到任何信息。
编辑:我创建了一个带有问题的抽象 github 项目:https://github.com/helo-trix/72520519
最佳答案
这是一个已在此处修复的错误 https://github.com/spring-projects/spring-data-jpa/pull/2542
升级到 springboot 2.7.2 将解决您的问题
关于java - SpringBoot v2.7.0 - Select-Query without transactional-annotation => No transactional EntityManager available |现在有了 github-example,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72520519/