【问题标题】:How do I define unique constraint in hibernate for this situation?对于这种情况,如何在休眠中定义唯一约束?
【发布时间】:2012-03-13 19:24:49
【问题描述】:

Destination 和 DestinationAlias 在数据库级别如下所示:

在 DestinationAlias 中,(idDestination, alias) 是唯一的。

DestinationAlias 的 POJO:

@Entity
@Table(name = "DESTINATIONALIAS",
uniqueConstraints = { @UniqueConstraint(columnNames={"IDDESTINATION", "ALIAS"}) }
        )
public final class DestinationAlias {

// ..

    @ManyToOne(fetch=FetchType.LAZY, cascade={CascadeType.ALL})
    @JoinColumn(name="IDDESTINATION", nullable=false)
    public Destination getMainCity() {
        return mainCity;
    }
}

唯一性约束应该是 IDDESTINATION 还是“MAINCITY”?

【问题讨论】:

    标签: java hibernate jakarta-ee orm hibernate-mapping


    【解决方案1】:

    唯一约束注释需要一个列名列表。所以在你的情况下,不,它不应该是“MAINCITY”。另请注意,使用与实际数据库字段相同的大小写是最佳做法,因为某些数据库区分大小写。所以你的代码应该是:

    @Entity
    @Table(name = "DestinationAlias", uniqueConstraints = { @UniqueConstraint(columnNames = {
            "idDestination", "alias" }) })
    public final class DestinationAlias {
        // ....
    }
    

    见:http://docs.oracle.com/javaee/6/api/javax/persistence/UniqueConstraint.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多