如何解决使用多个数据源时,将忽略休眠隐式命名策略
根据以下教程,我为两个数据库源创建了两个配置文件:Baeldung-JPA-Multiple-Databases
它工作正常,但是似乎隐式命名策略被忽略了。这意味着实体CustomerContact
未映射到表customer_contact
。
我尝试添加以下两个属性,但没有任何变化:
public LocalContainerEntityManagerFactoryBean primaryEntityManager() {
...
properties.put("hibernate.naming.implicit-strategy","org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy");
properties.put("hibernate.naming.physical-strategy","org.springframework.boot.orm.jpa.hibernate.SpringImplicitNamingStrategy");
em.setJpaPropertyMap(properties);
...
}
一种解决方案是使用持久性注释的name属性,例如
@Entity(name = "customer_contact")
,但我想避免这种情况,而改用隐式映射。
解决方法
可以在这里找到答案:Can't set JPA naming strategy after configuring multiple data sources (Spring 1.4.1 / Hibernate 5.x)
所需的属性是:
props.put("hibernate.physical_naming_strategy",SpringPhysicalNamingStrategy.class.getName());
props.put("hibernate.implicit_naming_strategy",SpringImplicitNamingStrategy.class.getName());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。