n:m Relation (Many to Many)
- Legen Sie ein neues Entity Extra an und fügen Sie ein Attribut extra vom Typ String hinzu.
- Schließen Sie das Tab Extra und klicken Sie im folgenden Dialog auf Yes, um das Entity Extra zu speichern.
- Legen Sie ein neues Entity Car an und fügen Sie folgende Attribute hinzu:
- registration vom Typ Date
- mileage vom Typ Integer
- kw vom Typ Integer
- price vom Typ Double
- Klicken Sie im Project Manager bei main-java > domain auf Extra.java und ziehen Sie es in den Entity-Editor auf das Attributes-Feld.
- Wählen Sie im folgenden Dialog die Option Many to Many (n:m).
- Übernehmen Sie die Einstellung Bidirectional und den vorgeschlagenen Namen carextra für die Join Table, die in der Datenbank für die Abbildung der n:m Relation benötigt wird.
- Klicken Sie auf OK.
- Klicken Sie auf Speichern.
Ergebnis:
Entity Car - Das Entity Car wird um das Attribut extras vom Typ Set erweitert.
@ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "carextra", joinColumns = @JoinColumn(name = "Car_id", referencedColumnName = "id", nullable = false, updatable = false), inverseJoinColumns = @JoinColumn(name = "Extra_id", referencedColumnName = "id", nullable = false, updatable = false)) public Set<Extra> getExtras() { return this.extras; } public void setExtras(final Set<Extra> extras) { this.extras = extras; }
Entity Extra - Das Entity Extra wird um das Attribut cars vom Typ Set erweitert.
@ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "carextra", joinColumns = @JoinColumn(name = "Extra_id", referencedColumnName = "id", nullable = false, updatable = false), inverseJoinColumns = @JoinColumn(name = "Car_id", referencedColumnName = "id", nullable = false, updatable = false)) public Set<Car> getCars() { return cars; } public void setCars(Set<Car> cars) { this.cars = cars; }
Hinweis:
- Relation im Code per Annotation - Im Code wird die Relation in beiden Entities mit Hilfe der Annotation @ManyToMany definiert.
- Plural - Bei n:m Relationen erzeugt RapidClipse den Namen des neuen Attributes wegen der besseren Lesbarkeit automatisch in Plural, z.B. cars.
- Relation löschen - Um eine bidirektionale 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.