语境
我已经用于@TypeName("Employee")
我的实体,所以我可以在 DB 中丢失完全限定的 TypeName。它按预期工作。
问题
当 Spring boot 应用程序重新启动并且存在现有的审计日志时,当我点击时出现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
到目前为止我的方法
- 我已经添加了JaversSqlAutoConfiguration.java,调用它
MyJaversSqlAutoConfiguration
。 - 然后我添加
scanTypeName(Employee.class)
了MyJaversSqlAutoConfiguration.javers()
.
观察
- 我注意到
MyJaversSqlAutoConfiguration.javers(connectionProvider)
没有被击中。但是,org.javers.spring.boot.sql.JaversSqlAutoConfiguration.javers()
在调试模式下会被击中。MyJaversSqlAutoConfiguration' gets hit. But not
MyJaversSqlAutoConfiguration.javers(ConnectionProvider connectionProvider)中的 commitPropertiesProvider() 和 springSecurityAuthorProvider() 。
经过仔细检查,我发现org.javers.spring.boot.sql.JaversSqlAutoConfiguration.javers()
没有@ConditionalOnMissingBean
but commitPropertiesProvider()
and springSecurityAuthorProvider()
do。
问题
在某处是否有此 scanTypeName() 的工作示例,或者我们应该添加@ConditionalOnMissingBean?