2009-12-03 6 views
4

Campus a @OneToMany Buildings Building a @OneToMany Rooms. noms de la chambre doit être unique au sein d'un campus (par exemple campus-A, bloc-A, salle A et le campus B, bloc-A, salle-A devrait être possible de stocker)@UniqueConstraint vérifier dans plusieurs tables dans JPA

Serait-il possible définir une telle contrainte unique sur l'entité Room?

Répondre

4

Il se peut que je manque quelque chose ici, mais ne construisez-vous pas des noms uniques sur un campus? Donc, vous devez vous assurer que les noms des chambres sont uniques dans le bâtiment donné:

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

Si vous faites maintenant la même chose pour Building noms dans Campus, vous devriez être bon d'aller.

+0

m'a également aidé! Bravo +1. – monojohnny