我在hibernate中的命名策略是默认策略:EJB3NamingStrategy。所以字段和表名都在camelcase中。我将它改为ImprovedNamingStrategy以获得蛇形。
但我的外键不包括名称中引用实体的主键名。
示例:
表1: ID 名称
使用EJB3NamingStrategy,table2字段将为:
表2: ID table1_id
但是使用ImprovedNamingStrategy,table2字段将是: 表2: ID 表1
有没有办法在ImprovedNamingStrategy中使用_id。我不明白为什么hibernate的行为不同,因为两种策略中的logicalCollectionColumnName方法都是相同的。
答案 0 :(得分:4)
扩展ImprovedNamingStrategy并自定义,也许ImprovedNamingStrategy的初始实现错了,然后他们无法修复它,因为它会破坏向后兼容性。
答案 1 :(得分:3)
此问题已在spring boot 1.2.7.RELEASE中得到解决。该线程的引用也在jpa hibernate包的文档中指定。类签名如下:
package org.springframework.boot.orm.jpa.hibernate;
public class SpringNamingStrategy extends ImprovedNamingStrategy {}