我正在将我的应用程序升级到Micronaut 4,并按照Micronaut指南中的说明进行了更改

应用程序正常启动,但当我try 从SQL Server检索数据时,收到错误消息:

Exception in thread "DefaultDispatcher-worker-1" io.micronaut.context.exceptions.ConfigurationException: No backing TransactionOperations configured. Check your configuration and try again
Caused by: io.micronaut.context.exceptions.NoSuchBeanException: No bean of type [io.micronaut.transaction.TransactionOperations] exists. Make sure the bean is not disabled by bean requirements (enable trace logging for 'io.micronaut.context.condition' to check) and if the bean is enabled then ensure the class is declared a bean and annotation processing is enabled (for Java and Kotlin the 'micronaut-inject-java' dependency should be configured as an annotation processor).
    at io.micronaut.context.DefaultBeanContext.newNoSuchBeanException(DefaultBeanContext.java:2773)
    at io.micronaut.context.DefaultApplicationContext.newNoSuchBeanException(DefaultApplicationContext.java:304)
    at io.micronaut.context.DefaultBeanContext.resolveBeanRegistration(DefaultBeanContext.java:2735)
    at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1729)
    at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:856)
    at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:841)
    at io.micronaut.transaction.support.DefaultTransactionOperationsRegistry.provideSynchronous(DefaultTransactionOperationsRegistry.java:49)

导致问题的方法如下:

    @jakarta.transaction.Transactional
    fun loadIndex(index: String) = runBlocking {
        logger.info { "Starting load..." }
        loadRepository.pullLoadRecords()
    }

我已经像往常一样在应用程序.yaml文件中声明了数据源,并且在升级之前应用程序也正常工作,所以我猜我在Micronaut4的升级中做错了什么.

有什么建议吗?

推荐答案

解决方案是添加库:

Io.microronaut.data:microronaut-data-tx-jdbc

它提供了缺失的TransactionOperatios实现类.

Kotlin相关问答推荐

Lambda和普通Kotlin函数有什么区别?

最好的方法来创建一个 map 在kotlin从两个列表

Kotlin和JavaFX:绑定行为奇怪

Kotlin编译器如何决定是否可以在任何给定点调用Suspend方法?

修改器的属性是什么,我需要更改以使角变圆且宽度更小?喷气背包组合

通过顺序多米诺骨牌操作列表管理对象的最佳方法是什么?

Kotlin 插件之间的区别

SpringBoot 2.5.0 对于 Jackson Kotlin 类的支持,请在类路径中添加com.fasterxml.jackson.module: jackson-module-kotlin

JobIntentService 被销毁,当应用程序被销毁时

如何使 TextInputEditText 只读?

包括登录Elvis operator?

在Kotlin中不带类直接引用枚举实例

Kotlin val difference getter override vs assignment

Kotlin 中更好的回调方法是什么?侦听器与高阶函数

具有泛型param的Kotlin抽象类和使用类型param的方法

Android:Exoplayer - ExtractorMediaSource 已弃用

如何将vararg作为数组传递给Kotlin中的函数?

用 kotlin 学习 Android MVVM 架构组件

Android Jetpack Compose 中的文本渐变

如何在 spring-boot Web 客户端中发送请求正文?