Verwendung von zwei PostgreSQL-Datenbanken im selben ProjektJava

Java-Forum
Anonymous
 Verwendung von zwei PostgreSQL-Datenbanken im selben Projekt

Post by Anonymous »

Ich habe den folgenden Fehler:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'comissionamentoEntityManagerFactory' defined in class path resource [coruripe/comissionamento/config/ComissionamentoConfig.class]: [PersistenceUnit: comissionamento] Unable to build Hibernate SessionFactory; nested exception is java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName.
I am working on a project that initially had only one database for the "comissionamento" module. Now, I need to create a new separate module for "sis". I have configured it according to Spring's documentation and forums. Below are the configurations:

application.properties
# Database configurations for Comissionamento
spring.datasource.comissionamento.url=jdbc:postgresql://localhost:5432/comissionamento
spring.datasource.comissionamento.username=***
spring.datasource.comissionamento.password=***
spring.datasource.comissionamento.driver-class-name=org.postgresql.Driver

# JPA/Hibernate configurations for Comissionamento
spring.jpa.comissionamento.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.comissionamento.hibernate.ddl-auto=update
spring.jpa.comissionamento.show-sql=true
spring.jpa.comissionamento.format-sql=true

# Database configurations for SIS
spring.datasource.sis.url=jdbc:postgresql://localhost:5432/sis
spring.datasource.sis.username=***
spring.datasource.sis.password=***
spring.datasource.sis.driver-class-name=org.postgresql.Driver

# JPA/Hibernate configurations for SIS
spring.jpa.sis.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.sis.hibernate.ddl-auto=update
spring.jpa.sis.show-sql=true
spring.jpa.sis.format-sql=true
ComissionamentoConfig

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
basePackages = "coruripe.comissionamento.repository",
entityManagerFactoryRef = "comissionamentoEntityManagerFactory",
transactionManagerRef = "comissionamentoTransactionManager"
)
public class ComissionamentoConfig {

@Primary
@Bean(name = "comissionamentoDataSource")
@ConfigurationProperties(prefix = "spring.datasource.comissionamento")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}

@Primary
@Bean(name = "comissionamentoEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(
EntityManagerFactoryBuilder builder) {
return builder
.dataSource(dataSource())
.packages("coruripe.comissionamento.model")
.persistenceUnit("comissionamento")
.properties(Map.of(
"hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect",
"hibernate.hbm2ddl.auto", "update",
"hibernate.show_sql", "true",
"hibernate.format_sql", "true"
))
.build();
}

@Primary
@Bean(name = "comissionamentoTransactionManager")
public PlatformTransactionManager transactionManager(
@Qualifier("comissionamentoEntityManagerFactory") EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}
}

SisConfig
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
basePackages = "coruripe.sis.repository",
entityManagerFactoryRef = "sisEntityManagerFactory",
transactionManagerRef = "sisTransactionManager"
)
public class SisConfig {

@Bean(name = "sisDataSource")
@ConfigurationProperties(prefix = "spring.datasource.sis")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}

@Bean(name = "sisEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean entityManagerFactory(
EntityManagerFactoryBuilder builder) {
return builder
.dataSource(dataSource())
.packages("coruripe.sis.model")
.persistenceUnit("sis")
.properties(Map.of(
"hibernate.dialect", "org.hibernate.dialect.PostgreSQLDialect",
"hibernate.hbm2ddl.auto", "update",
"hibernate.show_sql", "true",
"hibernate.format_sql", "true"
))
.build();
}

@Bean(name = "sisTransactionManager")
public PlatformTransactionManager transactionManager(
@Qualifier("sisEntityManagerFactory") EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}
}

Alles scheint korrekt konfiguriert zu sein, einschließlich des Teils, in dem der Fehler auftritt.
Für den Kontext hier die Projektstruktur, falls es hilfreich ist.< /p>
Projektstruktur
Hinweis: Es gibt noch keine Entitäten im „sis“-Paket oder irgendwelchen Controllern. Zu diesem Zeitpunkt existieren nur die Verzeichnisse.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post