Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  1. Legen Sie Wählen Sie im Menü File > New > Entityein Entity CarManufacturer an und fügen Sie ein Attribut company vom Typ String hinzuGeben Sie bei Entity > Name die Bezeichnung Carmodel ein. 
  2. 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.
  3. Legen Sie ein Entity Car an und fügen Sie ein Attribut model vom Typ String hinzu. 
  4. 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.
  5. Wählen Sie im folgenden Dialog die Option Many to One (n:1 - Each Automaker has many Carmodels). 
  6. Übernehmen Sie die Einstellung Bidirectional.
  7. Klicken Sie auf OK.
  8. Klicken Sie auf Speichern.
    Image Removed
    Image RemovedImage Added
Ergebnis:
  • Entity CarmodelCar - Die Klasse CarmodelDas Entity Car wird um das Attribut automaker vom Typ Automaker erweitertAttribut carManufacturer vom Typ CarManufacturer erweitert.


    Code Block
    languagejava
    themeConfluence
    @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.
    Image RemovedImage Added

    Code Block
    languagejava
    themeConfluence
    @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.