【问题标题】:Spring JPA override mechanism when entites have the same name实体具有相同名称时的 Spring JPA 覆盖机制
【发布时间】:2020-06-07 06:43:29
【问题描述】:

是否有可能存在具有相同名称的重复实体?如果满足特定条件,只有其中一个会被注册?

原因如下: 基于某些数据库配置,应使用客户特定的基本实体实现。

也许这个问题有更好的解决方案。

例如

@Entity(name="basicentity")
public class IntegrationBasicResource extends BaseAuditEntity {

@Entity(name="basicentity")
public class CustomerIntegrationBasicResource extends BaseAuditEntity {

【问题讨论】:

    标签: spring jpa duplicates overriding entity


    【解决方案1】:

    这可以通过拆分不同包中的实体并在不同的@Configuration 类上使用@EntityScan@ConditionalOnProperty 之间的组合来实现。

    @Configuration
    @ConditionalOnProperty(value="client.type", havingValue="a")
    @EntityScan("com.test.database.client.a")    
    public class EntityConfigClientTypeA {
      ...
    }
    

    如果通过属性设置不适合您的用例,则有多种类型的 @ConditionalOn... 注释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-11
      • 2019-08-31
      • 1970-01-01
      • 2022-08-09
      • 2016-05-02
      • 2015-04-09
      • 2011-03-10
      相关资源
      最近更新 更多