【问题标题】:How to set the constraint name of a @OneToOne mapping?如何设置@OneToOne 映射的约束名称?
【发布时间】:2015-10-26 12:45:18
【问题描述】:
@OneToOne
private AnyEntity entity;

hibernate 将创建如下映射:

CONSTRAINT fk_kcn86scsc0pasdasdngmrqc5i0 FOREIGN KEY (text_id)
 REFERENCES some_table (id) MATCH SIMPLE
 ON UPDATE NO ACTION ON DELETE NO ACTION

问题:如何在 java 中显式设置约束 name

我无法引入双向映射,因为AnyEntity 类将用于多个其他@Entity 类。

【问题讨论】:

标签: java hibernate


【解决方案1】:

你可以使用@ForeignKey注解。

@ForeignKey(name="constraint_name")

【讨论】:

  • 不,这将设置FOREIGN KEY (contraint_name)的名称,但我想更改fk_...的名称。
  • @membersound 你试过了吗?这似乎是正确的解决方案:stackoverflow.com/a/16564911/1225328.
  • 我发现@ForeignKey 注释在字段上是不允许的。但可以按如下方式使用:@JoinColumn(name = "BAR_ID", foreignKey = @ForeignKey(name = FK_BAR_OF_FOO)),按预期工作。
猜你喜欢
  • 2014-07-15
  • 1970-01-01
  • 2019-11-06
  • 1970-01-01
  • 2015-10-20
  • 1970-01-01
  • 1970-01-01
  • 2015-11-16
相关资源
最近更新 更多