Механизм переопределения Spring JPA, когда энтиты имеют одинаковое имя - PullRequest
0 голосов
/ 23 февраля 2020

Есть ли возможность иметь дубликаты сущностей с одинаковыми именами? И только один из них регистрируется, если удовлетворяется указанное c условие?

Причина заключается в следующем: На основании некоторой конфигурации базы данных следует использовать реализацию базового набора, указанную клиентом c.

Может быть, есть лучшее решение для этой проблемы.

EG

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

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

1 Ответ

2 голосов
/ 23 февраля 2020

Это может быть достигнуто путем разделения сущностей в разных пакетах и ​​использования комбинации между @EntityScan и @ConditionalOnProperty на разных @Configuration классах.

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

Существует много типов @ConditionalOn... аннотации, если настройка через свойства не подходит для вашего варианта использования.

...