【问题标题】:Is the ForeignKey annotation only used by HBM2DDL to generate the schema?ForeignKey 注释是否仅由 HBM2DDL 用于生成模式?
【发布时间】:2011-07-13 18:30:15
【问题描述】:

我在使用 TABLE_PER_CLASS 继承策略时遇到 Hibernate 如何生成外键名称的问题:Foreign keys have random number appended when using Hibernate's TABLE_PER_CLASS inheritance

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

@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 属性执行其他任何操作,或者这是一个很好的解决方法?

【问题讨论】:

    标签: hibernate foreign-keys hbm2ddl


    【解决方案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)?

    【讨论】:

    • 太好了,谢谢!如果我的假设是正确的,你知道吗(@ForeignKey 仅由 HBM2DDL 使用)?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-10-06
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 2012-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多