I'm working on spring boot 2 application and trying to establish connection with postgresql database with configuring hikari datasource and spring Jpa.
I'm succeed in that and i'm using hibernate.hbm2ddl.auto
as update
so it is creating table if not exists, but only the problem is it is throwing an exception when schema does not exist
Error
GenerationTarget encountered exception accepting command : Error executing DDL via JDBC Statement
Caused by: org.postgresql.util.PSQLException: ERROR: schema "test_schema" does not exist
I configured everything manually through config class
Config Class
@Bean
@Primary
public HikariDataSource dataSource() {
HikariConfig config = new HikariConfig();
config.setJdbcUrl(databaseUrl);
config.setUsername(username);
config.setPassword(password);
config.setDriverClassName(driverClassName);
config.setConnectionTimeout(connectionTimeout);
config.setIdleTimeout(idleTimeout);
config.setMaximumPoolSize(maxpoolSize);
config.setMaxLifetime(maxLifeTime);
config.setMinimumIdle(minIdleConnections);
//config.setPoolName(poolName);
return new HikariDataSource(config);
}
@Bean
public Properties additionalProps() {
Properties jpaProps = new Properties();
jpaProps.put(hbDialect, "org.hibernate.dialect.PostgreSQLDialect");
jpaProps.put(autoDDL, "update");
jpaProps.put(showSql, true);
jpaProps.put(formatSql, true);
return jpaProps;
}
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(dataSource());
factory.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
factory.setPackagesToScan("com.target.storetaskcount.entity");
factory.setJpaProperties(additionalProps());
return factory;
}
@Bean
public JpaTransactionManager transactionManager(EntityManagerFactory factory) {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
return transactionManager;
}
How would i make this to create schema if not exist?
I saw a similar question here and tried everything no luck so far similar-question (i don't wanna use flyway db)
Here is the documentation hibernate-doc, but it's not clear how add this property to create schema javax.persistence.schema-generation.database.action
Adding this property worked and created schema if not exist here