EJB3NamingStrategy与ImprovedNamingStrategy外键命名

时间:2011-10-07 15:10:56

标签: java hibernate

我在hibernate中的命名策略是默认策略:EJB3NamingStrategy。所以字段和表名都在camelcase中。我将它改为ImprovedNamingStrategy以获得蛇形。

但我的外键不包括名称中引用实体的主键名。

示例:

表1: ID 名称

使用EJB3NamingStrategy,table2字段将为:

表2: ID table1_id

但是使用ImprovedNamingStrategy,table2字段将是: 表2: ID 表1

有没有办法在ImprovedNamingStrategy中使用_id。我不明白为什么hibernate的行为不同,因为两种策略中的logicalCollectionColumnName方法都是相同的。

2 个答案:

答案 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 {}