Возможно, я что-то здесь упускаю, но разве названия зданий не уникальны и внутри кампуса? Поэтому вам необходимо убедиться, что названия комнат в данном здании уникальны:
@Entity
@Table(name="rooms",
uniqueConstraints = {@UniqueConstraint(columnNames={"building_id","name"})}
)
public class Room {
...
@ManyToOne
@JoinColumn(name = "building_id")
private Building building;
...
}
Если теперь вы сделаете то же самое для Building
имен в Campus
, вам следует идти.