上下文
我已经为我的实体使用了@TypeName("Employee"),这样我就可以在DB中丢失完全合格的TypeName。它如预期的那样工作。
问题
当Spring应用程序重新启动,并且有现有的审计日志时,当我按下TYPE_NAME_NOT_FOUND时,我会得到javers.findSnapshots()异常
org.javers.common.exception.JaversException: TYPE_NAME_NOT_FOUND type name 'Employment' not found. If you are using @TypeName annotation, remember to register this class using JaversBuilder.scanTypeName(Class). See also https://github.com/javers/javers/issues/263
到目前为止我的方法
MyJaversSqlAutoConfiguration。scanTypeName(Employee.class)中添加了MyJaversSqlAutoConfiguration.javers()。观察
MyJaversSqlAutoConfiguration.javers(connectionProvider)没有被击中。但是,org.javers.spring.boot.sql.JaversSqlAutoConfiguration.javers()在调试模式下会被击中。MyJaversSqlAutoConfiguration' gets hit. But notMyJaversSqlAutoConfiguration.javers(ConnectionProvider connectionProvider中的commitPropertiesProvider()和springSecurityAuthorProvider() `。仔细检查后,我发现org.javers.spring.boot.sql.JaversSqlAutoConfiguration.javers()没有@ConditionalOnMissingBean,但commitPropertiesProvider()和springSecurityAuthorProvider()有。
问题
是否有这个scanTypeName()的工作示例,或者我们应该添加@ConditionalOnMissingBean?
发布于 2016-09-05 21:48:25
看起来在javers定义中缺少了@ConditionalOnMissingBean (在两个javers-spring-boot-starters中)。
它可以添加到JaversSqlAutoConfiguration.java和JaversMongoAutoConfiguration.java中。
@Bean(name = "javers")
@ConditionalOnMissingBean
public Javers javers(ConnectionProvider connectionProvider) {
...如果你贡献一个公关,我们会合并它。
https://stackoverflow.com/questions/39322714
复制相似问题