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.
Verwendung von zwei PostgreSQL-Datenbanken im selben Projekt ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post