1:n Relation (One to Many)
- Legen Sie ein Entity Automaker an und fügen Sie ein Attribut company vom Typ String hinzu.
- Schließen Sie das Tab Automaker und klicken Sie im folgenden Dialog auf Yes, um das Entity Automaker zu speichern.
- Legen Sie ein Entity Carmodel an und fügen Sie ein Attribut model vom Typ String hinzu.
- Klicken Sie im Project Manager bei Entities auf Automaker.java und fügen Sie das Entity Automaker in den Entity-Editor bei Attributes ein.
- Wählen Sie im folgenden Dialog die Option Many to One (n:1).
- Übernehmen Sie die Einstellung Bidirectional.
- Klicken Sie auf OK.
- Klicken Sie auf Speichern.
Ergebnis:
Entity Carmodel - Das Entity Carmodel wird um das Attribut automaker vom Typ Automaker erweitert.
@ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "automaker_id") public Automaker getAutomaker() { return automaker; } public void setAutomaker(Automaker automaker) { this.automaker = automaker; }
Entity Automaker - Durch die übernommene Einstellung Bidirectional wird gleichzeitig das Entity Automaker um eine Liste mit allen Carmodels erweitert.
@OneToMany(fetch = FetchType.LAZY, mappedBy = "automaker") public List<Carmodel> getCarmodels() { return carmodels; } public void setCarmodels(List<Carmodel> carmodels) { this.carmodels = carmodels; } public Carmodel addCarmodel(Carmodel carmodel) { getCarmodels().add(carmodel); carmodel.setAutomaker(this); return carmodel; } public Carmodel removeCarmodel(Carmodel carmodel) { getCarmodels().remove(carmodel); carmodel.setAutomaker(null); return carmodel; }
Hinweis:
- Relation im Code per Annotation - Im Code wird die Relation mit Hilfe der Annotationen @ManyToOne, bzw. @OneToMany(mappedBy = "automaker") definiert.
- Plural - Bei 1:n Relationen wandelt RapidClipse den Namen des Entities auf der n-Seite wegen der besseren Lesbarkeit automatisch in Plural um, z.B. carmodels.
- Relation löschen - Um eine 1:n Relation korrekt zu löschen, müssen Sie die entsprechenden Attribute in beiden Entities löschen.
XDEV Software Corp. - One Embarcadero Center, San Francisco, CA 94111, US
Copyright © 2015. XDEV Software Corp. All rights reserved.