我想添加在本机查询中使用的参数化数据库名称
我引用了此URL来实施
https://vladmihalcea.com/how-to-resolve-the-hibernate-global-database-schema-and-catalog-for-native-sql-queries/
我已经在舞台上进行了测试并测试了环境,并且一切正常
缺少数据库名称。
下面是我的代码
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
数据库名称丢失。
我要去哪里错了?
在此先感谢您。
java参考方案
在persistence.xml文件中指定默认架构:
<property name="hibernate.default_schema" value="yourSchemaName" />
Java开头带有default子句的switch语句 - java以下代码打印出1,2,3,如果我更改int i = 3;,它将打印出3。我想知道背后的原因。我使用了调试器,看来i = 3进入情况3并打印出3然后程序终止了。我相信当i=5进入default时,这是否意味着case 1,case 2 and case 3都属于default条款?int i = 5; switch(i){ default: case 1: S…
当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…
java:继承 - java有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…
java.net.URI.create异常 - javajava.net.URI.create("http://adserver.adtech.de/adlink|3.0") 抛出java.net.URISyntaxException: Illegal character in path at index 32: http://adserver.adtech.de/adlink|3.0 虽然n…
Java-如何将此字符串转换为日期? - java我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…