- Legen Sie Wählen Sie im Menü File > New > Entityein Entity CarManufacturer an und fügen Sie ein Attribut company vom Typ String hinzu. Geben Sie bei Entity > Name die Bezeichnung Carmodel ein.
- Klicken Schließen Sie das Tab CarManufacturer und klicken Sie im folgenden Entity-Editor auf Add Attribute, geben Sie bei Name die Bezeichnung model ein und übernehmen Sie bei Type den Datentyp String.Dialog auf Yes, um das Entityzu speichern.
- Legen Sie ein Entity 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 ziehen Sie dieses Entity per Drag-and-drop in den Entity-Editores in den Entity-Editor auf die Attributes-Fläche.
- Wählen Sie im folgenden Dialog die Option Many to One (n:1 - Each Automaker has many Carmodels).
- Übernehmen Sie die Einstellung Bidirectional.
- Klicken Sie auf OK.
- Klicken Sie auf Speichern.
Ergebnis:
Entity CarmodelCar - Die Klasse CarmodelDas Entity Car 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 die Klasse Automaker um das Entity 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 bidirektionale Relation korrekt zu löschen, müssen Sie die entsprechenden Attribute in beiden Entities löschen.