【问题标题】:What does JPA @UniqueConstraint do in Hibernate?JPA @UniqueConstraint 在 Hibernate 中做了什么?
【发布时间】:2013-12-17 17:04:56
【问题描述】:

在Hibernate中,为什么要使用JPA标签:

@Table(name="tbl_sky",
    uniqueConstraints = {@UniqueConstraint(columnNames={"month", "day"})}
)

我知道何时使用它。当数据库表的字段(元组)组合是唯一的时使用它。当有复合主键时不使用它,因为复合主键始终是唯一的。无论如何,数据库已经强制执行了这种“唯一约束”关系,那么在我的 Hibernate 注释中包含这个标签有什么意义呢?使用这个标签对 Hibernate 有什么帮助?

【问题讨论】:

    标签: hibernate


    【解决方案1】:

    它有助于为您的映射在模式生成 (DDL) 中休眠。看:http://docs.oracle.com/javaee/6/api/javax/persistence/UniqueConstraint.html

    【讨论】:

    • 我之前看到过。它仍然没有回答为什么。现在问题变成了“为什么 DDL 考虑 UniqueConstraint 很重要,因为 DB 已经这样做了?”感谢您的回复。
    • 这很重要,因为您可能希望从映射生成整个数据库架构,包括命名。例如:@Entity @Table( name="EMPLOYEE", uniqueConstraints= @UniqueConstraint(name="MY_UNIQUE", columnNames={"EMP_ID", "EMP_NAME"}) ) 它会生成类似“ALTER TABLE EMPLOYEE ADD CONSTRAINT MY_UNIQUE UNIQUE(EMP_ID, EMP_NAME)”的内容。
    猜你喜欢
    • 2017-09-02
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 2012-02-12
    • 2010-10-26
    相关资源
    最近更新 更多