我有一个遗留的模式,我想使用Spring Data JPA,我试图找出如果这种情况是可能的。
我的代码模型如下:
@Entity
class Entity1 {
...
@CreatedBy
private String createdBy;
...
}
和
@Entity
class Entity2 {
...
@CreatedBy
private Long createdBy;
...
}
我希望能够使用Spring Data来实现这一点,但是我找不到一种方法(到目前为止)让审计支持这一点。
我尝试的第一件事是有两个AuditorAware
bean,但是这会导致多bean异常问题。有人知道如果这是可能的,目前,我需要在哪里寻找解决方案?
提前感谢!
非常有趣的问题,谢谢你的提出。
查看代码,没有办法插入第二个AuditorAware bean并让系统根据返回类型在它们之间进行选择。Spring甚至基于这个假设构建自己的内部bean。
你必须(根据初步研究):
- 创建一个类似于AnnotationAuditingConfiguration接口的接口,该接口知道有几个类型为AuditorAware的bean
- 创建一个auditthandler实现,它可以根据返回类型区分AuditorAware实例。
- 修改/覆盖AuditingBeanDefinitionRegistrarSupport以构造前面提到的类型感知的auditthandler
- 提供一个注释来导入被覆盖的注册商
相当多:))