Java 在这种情况下,如何在hibernate中定义唯一约束?
数据库级别的Destination和Destination如下所示: 在DestinationAlias中,(idDestination,alias)是唯一的 目的地的POJO:Java 在这种情况下,如何在hibernate中定义唯一约束?,java,hibernate,jakarta-ee,orm,hibernate-mapping,Java,Hibernate,Jakarta Ee,Orm,Hibernate Mapping,数据库级别的Destination和Destination如下所示: 在DestinationAlias中,(idDestination,alias)是唯一的 目的地的POJO: @Entity @Table(name = "DESTINATIONALIAS", uniqueConstraints = { @UniqueConstraint(columnNames={"IDDESTINATION", "ALIAS"}) } ) public final class Destin
@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”?唯一约束注释需要列名称列表。所以在你的情况下,不,它不应该是“主城”。还请注意,最好使用与实际数据库字段相同的大小写,因为有些数据库区分大小写。因此,您的代码应该是:
@Entity
@Table(name = "DestinationAlias", uniqueConstraints = { @UniqueConstraint(columnNames = {
"idDestination", "alias" }) })
public final class DestinationAlias {
// ....
}
见: