如何在 Spring Boot 上实现 2 个不同的 AuditorAware 实现?

问题描述 投票:0回答:1

我的 Spring Boot 2.6 项目有两个不同的数据源,但我希望有两个不同的 AuditorAware 实现(每个数据源一个)。

如您所知,项目中只能有一个 @EnableJpaAuditing 注解,并且在其中只能引用一个 AuditorAware bean:

@EnableJpaAuditing(auditorAwareRef="auditorAwareImplBean")

我需要为一个数据源数据库实体提供一个返回名称的

getCurrentAuditor()
实现,为第二个数据源提供一个返回电子邮件的
getCurrentAuditor()
实现。

我尝试创建另一个 AuditorAware 实现,然后在每个数据源配置上设置

@EnableJpaAuditing
注释,但出现重复的 bean 错误(每个项目只能有一个
@EnableJpaAuditing

审计字段与我的所有实体位于单独的

@MappedSupeclass
上,审计字段用
@Createdby
@LastModifiedBy
进行注释。

我不想改变这种方法(改变实体等等)。有什么推荐的方法吗?

java spring-boot jpa spring-data-jpa audit
1个回答
0
投票

我认为这是不可能的。经过一些在线研究后,我最终看到了 Vlad Mihalcea 的文章“使用 Hibernate 生成器实用程序模拟 JPA 审计”。实现简单,定制化程度高。 附注该库进行了很多更改,弃用了其中的一些注释,包括 Vlad Mihalcea 文章中使用的

@GeneratorType

。我建议阅读接口的 Javadoc。

    

© www.soinside.com 2019 - 2024. All rights reserved.