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 を置き換える必要があることが常にわかります。@ForeignKeyHibernate は、私が認識していない属性を使用して何か他のことを行いますか、またはこれは良い回避策ですか?

4

2 に答える 2

1

可能な場合は、独自のネーミング スタレッジ ( 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 に答える