小编典典

休眠命名策略

spring-boot

我正在使用Spring(Boot)构建REST Web服务,并尝试使用没有任何xml配置的hibernate作为orm映射器。

我基本上可以使用它,但是我遇到了配置问题。我实例LocalContainerEntityManagerFactoryBean作为@Bean一个@Configuration文件。

hibernate.ejb.naming_strategy按照以下示例进行设置->如果表不存在(似乎列名像我的@Entity类中的camelCase一样),这似乎可以创建表,但是当执行查询时,hibernate“忘记”此命名配置,并且尝试对under_score_attributes使用另一种命名策略->显然,这些查询失败。我还需要设置其他属性吗?

或者另一种配置属性的方式,最好 添加cfg.xmlpersistence.xml

LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();   
Properties props = new Properties();
props.put("hibernate.hbm2ddl.auto", "create");
props.put("hibernate.ejb.naming_strategy","org.hibernate.cfg.DefaultNamingStrategy");
lef.setJpaProperties(props); 
lef.afterPropertiesSet();

阅读 256

收藏
2020-05-30

共1个答案

小编典典

HibernateJpaAutoConfiguration允许通过本地外部配置来设置命名策略(以及所有其他JPA属性)。例如,在application.properties

spring.jpa.hibernate.ddl_auto: create
spring.jpa.hibernate.naming_strategy: org.hibernate.cfg.EJB3NamingStrategy
2020-05-30