我目前正在将现有的Micronaut应用程序从版本1.2. x升级到2.2.1(最新),我认为开始使用micronaut-data
来执行任何数据库交互也是一个好主意是必需的。
我已经实现了所有各种代码更改,并且还将代码移植到使用Micronaut自己的存储库,但是每当我启动应用程序时,每次它尝试执行任何类型的数据库相关交互时,都会失败并出现以下错误:
20:21:06.535 [scheduled-executor-thread-21] ERROR i.m.s.DefaultTaskExceptionHandler - Error invoking scheduled task for bean [fts.marketing.utils.$TestDefinition$Intercepted@122b3da3] No bean of type [io.micronaut.transaction.SynchronousTransactionManager] 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).
io.micronaut.context.exceptions.NoSuchBeanException: No bean of type [io.micronaut.transaction.SynchronousTransactionManager] 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.getBeanInternal(DefaultBeanContext.java:2322)
at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:721)
at io.micronaut.transaction.interceptor.TransactionalInterceptor.lambda$intercept$0(TransactionalInterceptor.java:111)
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705)
at io.micronaut.transaction.interceptor.TransactionalInterceptor.intercept(TransactionalInterceptor.java:96)
at io.micronaut.aop.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:82)
at fts.marketing.utils.$TestDefinition$Intercepted.doSomething(Unknown Source)
at fts.marketing.utils.$TestDefinition$$exec1.invokeInternal(Unknown Source)
at io.micronaut.context.AbstractExecutableMethod.invoke(AbstractExecutableMethod.java:146)
at io.micronaut.inject.DelegatingExecutableMethod.invoke(DelegatingExecutableMethod.java:76)
我遵循了这里找到的关于设置Micronaut Data的配置指南,我想我已经导入了所有正确的依赖项https://micronaut-projects.github.io/micronaut-data/latest/guide/#introduction.
文档指出事务管理器应该自动可用,但情况似乎并非如此。
请参考我的构建。渐变和应用程序。yml看起来是这样的:
dependencies {
annotationProcessor 'org.projectlombok:lombok:1.18.8'
annotationProcessor 'io.micronaut:micronaut-inject-java'
annotationProcessor 'io.micronaut:micronaut-validation'
annotationProcessor 'io.micronaut:micronaut-graal'
annotationProcessor 'javax.persistence:javax.persistence-api:2.2'
annotationProcessor 'io.micronaut.data:micronaut-data-processor'
compileOnly 'org.projectlombok:lombok:1.18.8'
/*** MICRONAUT ***/
runtime 'io.micronaut.sql:micronaut-jdbc-hikari'
implementation 'io.micronaut:micronaut-inject'
implementation 'io.micronaut:micronaut-validation'
implementation 'io.micronaut:micronaut-runtime'
implementation 'io.micronaut.data:micronaut-data-hibernate-jpa'
implementation 'io.micronaut.beanvalidation:micronaut-hibernate-validator'
implementation 'io.micronaut.redis:micronaut-redis-lettuce'
implementation 'io.micronaut.kafka:micronaut-kafka'
implementation 'io.micronaut:micronaut-http-client'
implementation 'io.micronaut:micronaut-management'
implementation 'io.micronaut:micronaut-aop'
/*** ADDITIONAL DEPENDENCIES ***/
runtime 'com.oracle:ojdbc7:12.1.0.1.0'
runtime "ch.qos.logback:logback-classic:1.2.3"
implementation 'org.apache.commons:commons-lang3:3.8.1'
implementation 'org.apache.commons:commons-text:1.6'
implementation 'commons-codec:commons-codec:1.9'
implementation 'net.htmlparser.jericho:jericho-html:internal'
implementation 'org.atteo:evo-inflector:1.2.2'
implementation 'com.sun.mail:javax.mail:1.6.2' // TODO: Use only SMTP provider to reduce bundle size
implementation 'org.freemarker:freemarker:2.3.28'
implementation "ch.qos.logback.contrib:logback-jackson:0.1.5"
implementation "ch.qos.logback.contrib:logback-json-classic:0.1.5"
implementation "org.codehaus.janino:janino:3.1.0"
/*** TEST DEPENDENCIES ***/
testAnnotationProcessor "io.micronaut:micronaut-inject-java"
testRuntime "org.junit.jupiter:junit-jupiter-engine"
testRuntime "com.h2database:h2"
testImplementation "org.junit.jupiter:junit-jupiter-api"
testImplementation "org.junit.jupiter:junit-jupiter-params"
testImplementation "io.micronaut.test:micronaut-test-junit5"
testImplementation 'org.apache.kafka:kafka-clients:2.3.0:test'
testImplementation 'org.apache.kafka:kafka_2.12:2.3.0'
testImplementation 'org.apache.kafka:kafka_2.12:2.3.0:test'
testImplementation "com.github.kstyrc:embedded-redis:0.6"
testImplementation "org.mockito:mockito-core:3.0.0"
testImplementation "org.mockito:mockito-junit-jupiter:3.0.0"
}
---
datasources:
default:
url: ${JDBC_URL}
username: ${JDBC_USER}
password: ${JDBC_PASSWORD}
driverClassName: ${JDBC_DRIVER:oracle.jdbc.OracleDriver}
dialect: oracle
schema-generate: none
---
jpa:
default:
entity-scan:
packages: 'fts.marketing.repositories'
properties:
hibernate:
hbm2ddl:
auto: none
show_sql: true
format_sql: true
use_sql_comments: false
dialect: ${JPA_DIALECT:`org.hibernate.dialect.Oracle12cDialect`}
---
有没有人对为什么会出现这个问题有一个提示?
经过一番挖掘,我注意到entity-scan.packages
指向了一个错误的包(是存储库
而不是实体
)。纠正这一点解决了问题,但在这些情况下产生的异常消息仍然不是很有用。
由于遗留原因,我们有很多代码坐在存储过程下。类似于spring数据(@procedure),在micronaut中有没有一种方法可以调用存储过程。我是否必须注入entityManager并使用CreateNamedStoredProcedureQuery()。
我试图在mi本地环境中创建docker容器。我们有一个Micronaut(Java)应用程序和一个MySQL数据库。 我用以下内容为数据库创建了一个容器: 当我从我的应用程序中连接到docker之外的Embbbed服务器时,我们可以毫无问题地连接。Mi应用程序。yml有下一个配置: 然后我尝试创建Micronaut应用程序映像,并在容器上运行它。我的Dockerfile包含: 我首先生成JAR:
首先要提的是-我把一切都准备好了。我所做的唯一更改是在代码中添加了更多的存储库。 然后我得到: 15:47:58.126[pool-2-thread-4]错误I.M.H.S.Netty.RoutingInboundHandler-出现意外错误:无法为Io.Micronaut.Transaction.Hibernate5.HibernateTransactionManager类的参数[session
嗨,我正在尝试在Kotlin启动一个使用Micronaut数据的项目,我正在尝试建立一个简单的表关系。然而,我在使用micronaut注释时遇到了问题。父实体和子实体如下: 我的错误如下: 如果我删除构造函数中的关系参数,一切都很好,因此关系肯定有问题,但我不能对此置之不理。有人能帮忙吗?
在使用Micronaut数据执行显式查询(@query)时,是否可以给出一个countQuery示例来实现分页?在中没有示例https://micronaut-projects.github.io/micronaut-data/latest/guide/#explicitQueries 我必须提出一个如下的问题
我创建了一个micronaut应用程序,它可以通过jdbc模板访问多个数据源。 这将使用: 问题是我想以某种方式解密来自配置的密码。我的第一次尝试是“替换”工厂正在使用的bean,但没有运气,它给了我一个没有意义的错误(io.micronaut.context.exceptions.DependencyInjtionExctive)。 以下是我的替换尝试: 知道我做错了什么吗??谢谢 答:必须按照