@UniqueConstraint检查JPA中的多个表

Joe*_*Joe 4 hibernate jpa

校园有@OneToMany建筑物建筑物有@OneToMany房间。房间名称在校园中必须唯一(例如,校园A,A区,A室和A区,B区,A区,A区应该可以存储)

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

Chs*_*y76 5

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

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

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