- Legen Sie ein Entity Automaker 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 Entityzu speichern.
- Legen Sie ein Entity Carmodel Car an und fügen Sie ein Attribut model vom Typ String hinzu.
- Klicken Sie im Project Manager bei Entities auf Automakerauf main-java > domain > CarManufacturer.java und fügen ziehen Sie das Entity Automaker in den Entityes in den Entity-Editor bei auf die Attributes ein-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 CarmodelCar - Das Entity CarmodelCar wird um das Attribut automaker vom Typ Automaker erweitertAttribut carManufacturer vom Typ CarManufacturer erweitert.
Code Block language java theme Confluence @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "automakercarManufacturer_id") public AutomakerCarManufacturer getAutomakergetCarManufacturer() { return automakerthis.carManufacturer; } public void setAutomakersetCarManufacturer(Automakerfinal CarManufacturer automakercarManufacturer) { this.automakercarManufacturer = automakercarManufacturer; }
Entity Automaker CarManufacturer - Durch die übernommene Einstellung Bidirectional wird gleichzeitig das Entity Automaker um CarManufacturer um eine Liste mit allen Carmodels cars erweitert.
Code Block language java theme Confluence @OneToMany(fetch = FetchType.LAZY, mappedBy = "automakercarManufacturer") public List<Carmodel>List<Car> getCarmodelsgetCars() { return carmodelsthis.cars; } public void setCarmodelssetCars(List<Carmodel>final List<Car> carmodelscars) { this.carmodelscars = carmodelscars; } public CarmodelCar addCarmodeladdCar(Carmodelfinal Car carmodelcar) { getCarmodels this.getCars().add(carmodelcar); carmodel car.setAutomakersetCarManufacturer(this); return carmodelcar; } public CarmodelCar removeCarmodelremoveCar(Carmodelfinal Car carmodelcar) { getCarmodels this.getCars().remove(carmodelcar); carmodel car.setAutomakersetCarManufacturer(null); return carmodelcar; }
Hinweis:
- Relation im Code per Annotation - Im Code wird die Relation mit Hilfe der Annotationen @ManyToOne, bzw. @OneToMany(mappedBy = "automakercarManufacturer") 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. carmodelscars.
- Relation löschen - Um eine 1:n bidirektionale Relation korrekt zu löschen, müssen Sie die entsprechenden Attribute in beiden Entities löschen.