当我尝试使用内存h2数据库和Jpa配置micronaut数据时,出现以下异常。
我一直在关注documentation
我使用maven作为构建工具从命令行创建了项目。我有以下
<dependency>
<groupId>io.micronaut.configuration</groupId>
<artifactId>micronaut-jdbc-tomcat</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.micronaut.data</groupId>
<artifactId>micronaut-data-hibernate-jpa</artifactId>
<version>1.0.0.M3</version>
</dependency>
而且我还添加了这样的注释处理器
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
......
<configuration>
...
<annotationProcessorPaths>
<path>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-inject-java</artifactId>
<version>${micronaut.version}</version>
</path>
<path>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-validation</artifactId>
<version>${micronaut.version}</version>
</path>
<path>
<groupId>io.micronaut.data</groupId>
<artifactId>micronaut-data-processor</artifactId>
<version>1.0.0.M3</version>
</path>
</annotationProcessorPaths>
</configuration>
.....
</plugin>
我的Entity类和Repository类与指南中完全相同。当我尝试使用存储库进行保存时,出现此异常
18:16:37.787 [pool-1-thread-3] ERROR i.m.h.s.netty.RoutingInBoundHandler - Unexpected error occurred: No backing RepositoryOperations configured for repository. Check your configuration and try again
io.micronaut.context.exceptions.ConfigurationException: No backing RepositoryOperations configured for repository. Check your configuration and try again
..............................
Caused by: io.micronaut.context.exceptions.NoSuchBeanException: No bean of type [io.micronaut.data.operations.RepositoryOperations] 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).
我已经研究过this。这是完全不同的,对我的问题没有帮助。
有趣的是,如果我更改微导航数据注释过程的顺序,或者我的意思是如果我这样放置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
......
<configuration>
...
<annotationProcessorPaths>
<path>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-inject-java</artifactId>
<version>${micronaut.version}</version>
</path>
<path>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-validation</artifactId>
<version>${micronaut.version}</version>
</path>
<path>
<groupId>io.micronaut.data</groupId>
<artifactId>micronaut-data-processor</artifactId>
<version>1.0.0.M3</version>
</path>
</annotationProcessorPaths>
</configuration>
.....
</plugin>
我得到一个不同的例外。
Internal Server Error: All possible Introduction advise exhausted and no implementation found for method: Iterable saveAll(Iterable entities)
非常感谢任何指针。
答案 0 :(得分:2)
文档不完整。是否在文档更新中提出了拉取请求(https://github.com/micronaut-projects/micronaut-data/pull/197)。已被接受。可以在here
中找到更新的文档。需要另一个依赖项
<dependency>
<groupId>io.micronaut.data</groupId>
<artifactId>micronaut-data-hibernate-jpa</artifactId>
</dependency>
答案 1 :(得分:1)
我遇到此错误,针对我的情况的解决方案是将以下内容添加到application.yml
:
jpa:
default:
properties:
hibernate:
bytecode:
provider: none
答案 2 :(得分:1)
将模型实体包路径添加到application.yml
:
jpa:
default:
packages-to-scan:
- 'com.entity'
请在yml文件中添加组件扫描路径,因为app实体找不到