我希望为PostgreSQL设置默认架构。当我尝试设置属性("hibernate.default_schema")并且更新表注释与架构属性时,Hibernate仍会生成没有任何架构名称的查询,如下所示:
当我将表名更改为“dbo.log”时,可以获得结果集而没有任何错误。
有没有方法可以为postgresql查询设置默认模式?
select log0_.id as id1_0_ from log log0_
当我将表名更改为“dbo.log”时,可以获得结果集而没有任何错误。
@Table(name = "dbo.log")
有没有方法可以为postgresql查询设置默认模式?
@Configuration
@EnableJpaRepositories(
basePackages = "com.test.repository.postgresql",
entityManagerFactoryRef = "postgresqlEntityManagerFactory",
transactionManagerRef = "postgresqlTransactionManager"
)
public class PostgreSQLConfig {
....
@Bean(name = "postgresqlEntityManagerFactory")
public EntityManagerFactory entityManagerFactory(@Qualifier("postgresqlDatasource") DataSource postgresqlDatasource) {
Properties jpaProperties = new Properties();
jpaProperties.setProperty("hibernate.dialect", hibernateDialect);
jpaProperties.setProperty("hibernate.show_sql", hibernateShowSql);
jpaProperties.setProperty("hibernate.ddl-auto", hibernateDDLAuto);
jpaProperties.setProperty("hibernate.naming.physical-strategy", hibernatePhysicalStrategy);
jpaProperties.setProperty("hibernate.default_schema", "dbo");
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setDatabase(Database.POSTGRESQL);
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setJpaVendorAdapter(vendorAdapter);
factory.setJpaProperties(jpaProperties);
factory.setPackagesToScan("com.test.entity.postgresql");
factory.setDataSource(postgresqlDatasource);
factory.afterPropertiesSet();
return factory.getObject();
}
}
这是我的实体类:
@Entity
@Table(name = "log", schema = "dbo")
public class Log{
....
}
EntityManagerFactory
? - Karol Dowbecki