1:n Relation (One to Many)
- Legen Sie ein Entity CarManufacturer an und fügen Sie ein Attribut company vom Typ String hinzu.
- Schließen Sie das Tab CarManufacturer und klicken Sie im folgenden Dialog auf Yes, um das Entity zu speichern.
- Legen Sie ein Entity Car an und fügen Sie ein Attribut model vom Typ String hinzu.
- Klicken Sie im Project Manager auf main-java > domain > CarManufacturer.java und ziehen Sie es in den Entity-Editor auf die Attributes-Fläche.
- 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 Car - Das Entity Car wird um das Attribut carManufacturer vom Typ CarManufacturer erweitert.
@ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "carManufacturer_id") public CarManufacturer getCarManufacturer() { return this.carManufacturer; } public void setCarManufacturer(final CarManufacturer carManufacturer) { this.carManufacturer = carManufacturer; }
Entity CarManufacturer - Durch die übernommene Einstellung Bidirectional wird gleichzeitig das Entity CarManufacturer um eine Liste mit allen cars erweitert.
@OneToMany(fetch = FetchType.LAZY, mappedBy = "carManufacturer") public List<Car> getCars() { return this.cars; } public void setCars(final List<Car> cars) { this.cars = cars; } public Car addCar(final Car car) { this.getCars().add(car); car.setCarManufacturer(this); return car; } public Car removeCar(final Car car) { this.getCars().remove(car); car.setCarManufacturer(null); return car; }
Hinweis:
- Relation im Code per Annotation - Im Code wird die Relation mit Hilfe der Annotationen @ManyToOne, bzw. @OneToMany(mappedBy = "carManufacturer") 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. 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.