有任何方法让Spring Data Auditing根据字段填充Long或String吗?

时间:2014-05-09 08:33:32

标签: java spring spring-data

我有一个遗留架构,我想使用Spring Data JPA,如果可能的话,我正在尝试解决这个问题。

我的代码模型如下:

@Entity
class Entity1 {
   ...
   @CreatedBy
   private String createdBy;
   ...
}

@Entity
class Entity2 {
    ...
    @CreatedBy
    private Long createdBy;
    ...
}

我希望能够为此使用Spring Data,但是我找不到一种方法(到目前为止)获得审计支持。

我尝试的第一件事就是有两个AuditorAware bean,但是这会导致多个bean异常问题。有谁知道目前这是否可能,以及我需要寻找解决方案的地方?

提前致谢!

1 个答案:

答案 0 :(得分:0)

非常有趣的问题,谢谢你提出它。

查看代码,无法插入第二个AuditorAware bean并让系统通过返回类型在它们之间进行选择。 Spring基于这个假设构建了自己的内部bean。

你必须(根据初步研究):

  • 创建一个类似于AnnotationAuditingConfiguration接口的接口,该接口知道有几个AuditorAware类型的bean
  • 创建一个AuditHandler实现,可以根据返回类型
  • 区分AuditorAware实例
  • 修改/覆盖AuditingBeanDefinitionRegistrarSupport以构造前面提到的类型感知的AuditHandler
  • 提供导入已覆盖的注册商的注释

相当少::))