語境
我用@TypeName("Employee")
我的實體,所以我可能會失去在DB的完全限定類型名。它按預期工作。JaversSqlAutoConfiguration.javers()不獲取調用
問題
當春天啓動應用程序重新啓動,並有現有的審計日誌,我得到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
。 - 我再
MyJaversSqlAutoConfiguration.javers()
加入scanTypeName(Employee.class)
。
觀察
- 我注意到
MyJaversSqlAutoConfiguration.javers(connectionProvider)
不被打到。但是,org.javers.spring.boot.sql.JaversSqlAutoConfiguration.javers()
在調試模式下被擊中。 commitPropertiesProvider()和springSecurityAuthorProvider()在MyJaversSqlAutoConfiguration' gets hit. But not
MyJaversSqlAutoConfiguration.javers(ConnectionProvider等的ConnectionProvider)`。
經仔細檢查,我發現org.javers.spring.boot.sql.JaversSqlAutoConfiguration.javers()
沒有@ConditionalOnMissingBean
但commitPropertiesProvider()
和springSecurityAuthorProvider()
做。
問題
是否有這個scanTypeName的工作示例()的地方還是應該增加@ConditionalOnMissingBean?