[英]Hibernate's property hibernate.default_schema is not working properly
我想添加在本机查询中使用的参数化数据库名称我引用此URL来实现https://vladmihalcea.com/how-to-resolve-the-hibernate-global-database-schema-and-catalog-for-native -sql-queries /我已经在阶段测试并测试了environemnt,除了数据库名称缺失外,一切正常。 以下是我的代码
application.yml
hibernate:
show_sql: true
format_sql: true
dialect: org.hibernate.dialect.MySQLDialect
hbm2ddl.auto: false
default_schema: student
SummitRepository.java
@Query(value = "select * from {h-schema}summit", nativeQuery = true)
public List<Summit> getActiveUpcomingSummitsForChannelIds();
TestDbConfig
public class TestDbConfig {
@Primary
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
HibernateJpaVendorAdapter hibernateJpa = new HibernateJpaVendorAdapter();
hibernateJpa.setDatabasePlatform(env
.getRequiredProperty("hibernate.dialect"));
hibernateJpa.setShowSql(env.getRequiredProperty("hibernate.show_sql",
Boolean.class));
LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(datasource());
emf.setJpaVendorAdapter(hibernateJpa);
emf.setPackagesToScan("com.xxx.student.model");
Map<String, String> jpaProps = new HashMap<String, String>();
jpaProps.put("hibernate.dialect",
env.getRequiredProperty("hibernate.dialect"));
jpaProps.put("hibernate.format_sql",
env.getRequiredProperty("hibernate.format_sql"));
jpaProps.put("hibernate.hbm2ddl.auto",
env.getRequiredProperty("hibernate.hbm2ddl.auto"));
jpaProps.put("hibernate.show_sql",
env.getRequiredProperty("hibernate.show_sql"));
***jpaProps.put("hibernate.default_schema",
env.getRequiredProperty("hibernate.default_schema"));***
emf.setJpaPropertyMap(Collections.singletonMap(
"javax.persistence.validation.mode", "none"));
return emf;
}
Hibernate背景生成的查询
select * from summit
实际产出
select * from summit
预期产出
select * from student.summit
数据库名称丢失。 我哪里错了? 先谢谢你。
在persistence.xml文件中指定默认架构:
<property name="hibernate.default_schema" value="yourSchemaName" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.