@UniqueConstraint检查JPA中的多个表

时间:2009-12-03 15:34:10

标签: hibernate jpa

Campus @OneToMany Buildings Building拥有@OneToMany Rooms。 房间名称在校园内必须是唯一的 (例如校园A,A座,A室和校园B,A座,A座应该可以存放)

是否可以在Room实体上定义这样一个唯一约束?

1 个答案:

答案 0 :(得分:4)

我可能在这里遗漏了一些东西,但是在校园内也没有建立独特的名字?因此,您需要确保房间名称在给定建筑物内是唯一的:

@Entity
@Table(name="rooms",
  uniqueConstraints = {@UniqueConstraint(columnNames={"building_id","name"})}
)
public class Room {
  ...
  @ManyToOne
  @JoinColumn(name = "building_id")
  private Building building;
  ...
}

如果您现在对Building中的Campus名称执行相同的操作,那么您应该很高兴。