【问题标题】:Hibernate Implicit Naming Strategy is ignored when using multiple datasources使用多个数据源时忽略 Hibernate 隐式命名策略
【发布时间】:2020-12-12 23:18:34
【问题描述】:

根据下面的教程,我为两个数据库源创建了两个配置文件: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);
    ...
}

一种解决方案是使用持久性注释的名称属性,例如 @Entity(name = "customer_contact"),但我想避免这种情况并改用隐式映射。

【问题讨论】:

标签: java spring-boot hibernate jpa orm


【解决方案1】:

可以在这里找到答案: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());

【讨论】:

    猜你喜欢
    • 2023-03-21
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    • 2017-01-02
    • 2012-06-09
    • 2017-03-23
    • 1970-01-01
    相关资源
    最近更新 更多