Hallo zusammen,
ich versuche in Spring zwei repositories zu verwenden mit eingenem entityManager, da sie auf unterschiedliche Datenbanken zugreifen.
Dies sollte mit der @EnableJpaRepositories Anmerkung funktionieren, was aber beim Ausführen passiert ist dass entityManagerFactory-repo2 für beide
verwendet wird, da dieses Bean beim Aufbauen des Spring Context als letztes erstellt wird. Somit wird die "entityManagerFactoryRef" Eigenschaft
der @EnableJpaRepositories Anmerkung ignoriert. Sonst funktioneren die repositories gut.
Gibt es also noch etwas zu beachten um einem Repository eine bestimmte Datenquelle/EntityManagerFactory / EntityManager zuzuweisen, ohne dass nur das
zuletzt erstelle verwendet wird?
Hier sind die Konfiguration Klassen:
und noch einmal eine äquivalente Klasse zu repo2
ich versuche in Spring zwei repositories zu verwenden mit eingenem entityManager, da sie auf unterschiedliche Datenbanken zugreifen.
Dies sollte mit der @EnableJpaRepositories Anmerkung funktionieren, was aber beim Ausführen passiert ist dass entityManagerFactory-repo2 für beide
verwendet wird, da dieses Bean beim Aufbauen des Spring Context als letztes erstellt wird. Somit wird die "entityManagerFactoryRef" Eigenschaft
der @EnableJpaRepositories Anmerkung ignoriert. Sonst funktioneren die repositories gut.
Gibt es also noch etwas zu beachten um einem Repository eine bestimmte Datenquelle/EntityManagerFactory / EntityManager zuzuweisen, ohne dass nur das
zuletzt erstelle verwendet wird?
Hier sind die Konfiguration Klassen:
Java:
@Configuration
@PropertySource(value = { "classpath:hibernate.properties" })
@EnableJpaRepositories(basePackageClasses = <paket>.repo1.class,
entityManagerFactoryRef = "entityManagerFactory-repo1")
public class KonfigurationRepo1
{
@Autowired
private Environment env;
@Bean(name = "entityManagerFactory-repo1")
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBeanrepo1()
{
...
return entityManagerFactoryBean;
}
@Bean(name = "datasource-repo1")
public DataSource dataSource()
{
...
return dataSource;
}
}
und noch einmal eine äquivalente Klasse zu repo2