1

我在使用 TABLE_PER_CLASS 继承策略时 Hibernate 如何生成外键名称时遇到问题:使用 Hibernate 的 TABLE_PER_CLASS 继承时,外键附加了随机数

所以我想知道是否可以简单地将注释替换为以下内容:

@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@Entity
abstract class Item {
    @ManyToOne
    @ForeignKey(name="FK_ITEM_ORG_CHANGEME")
    @JoinColumn(name="ORG_ID")
    private Organization org
}

这样我总是知道回到生成的 DDL 并替换所有出现的 CHANGEME。Hibernate 是否对@ForeignKey我不知道的属性做任何其他事情,或者这是一个很好的解决方法?

4

2 回答 2

1

可能的,您可以通过自己的 Naming staretgy 重新定义这种行为 - http://docs.jboss.org/hibernate/core/3.2/api/org/hibernate/cfg/NamingStrategy.html#foreignKeyColumnName(java.lang.String , java. lang.String, java.lang.String, java.lang.String) ?

于 2011-07-16T19:23:50.670 回答
1

没错,@ForeignKey 仅由 HBM2DDL(或其从现有数据库生成域模型但您似乎没有使用它的小兄弟)使用。

于 2011-07-17T14:18:37.673 回答