在数据库级别的Destination和DestinationAlias如下所示:
在DestinationAlias中,(idDestination,别名)是唯一的。
适用于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”?
最佳答案
唯一约束注释需要列名列表。因此,就您而言,不,它不应该是“ 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