2016-03-30 44 views
2

有没有一种方法可以忽略除明确包含在Javers中的所有字段?我试图坚持CGLib代理对象,并且它将@Intity字段和所有CGLib字段一起拾取。所以我认为会更好的工作是默认情况下忽略,而注释/配置说“使用这些字段”。贾斯弗默认忽略而不是默认包括

我也尝试过.withMappingStyle(MappingStyle.BEAN)这似乎没有区别。

回答

0

有没有这样的选择,但

  • 您可以按类型全局忽略这些CGLIB代理字段(如果他们有一些有意义的类型)使用JaversBuilder.registerIgnoredClass(Class<?> ignoredClass)

  • 我现在还不建议CGLIB代理直接对象JaVers。对于休眠我们unproxy钩,看到http://javers.org/documentation/domain-configuration/#hooks 可以implememt unproxy钩你的ORM

+0

我不认为他们有一个特定的类型,所以不是很容易忽略这样。我确实有点惊讶,你有办法忽略特定的领域,你没有反过来只包含特定的领域。有点合理,因为这应该是一个审计跟踪,你真的想正常包括所有东西。是的,看到ObjectAccessHook,我想我可以用它来从CGLib代理对象中取出真实的类类型。 – Drizzt321

+0

我的确发现CGLib确实创建了一个额外的getter方法,因此即使对于getter来说Bean样式映射也会找到CGlib的东西。 *叹* – Drizzt321