2016-09-05 26 views
1

語境

我用@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()沒有@ConditionalOnMissingBeancommitPropertiesProvider()springSecurityAuthorProvider()做。

問題

是否有這個scanTypeName的工作示例()的地方還是應該增加@ConditionalOnMissingBean?

回答

0

看起來@ConditionalOnMissingBean在javers豆defintions失蹤(在javers-spring-boot-starters)。

它可以添加到JaversSqlAutoConfiguration.javaJaversMongoAutoConfiguration.java

@Bean(name = "javers") 
@ConditionalOnMissingBean 
public Javers javers(ConnectionProvider connectionProvider) { 
... 

如果你貢獻PR,我們會合並。