1:n Relation (One to Many)

  1. Legen Sie ein Entity CarManufacturer an und fügen Sie ein Attribut company vom Typ String hinzu. 
  2. Schließen Sie das Tab CarManufacturer und klicken Sie im folgenden Dialog auf Yes, um das Entity zu 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 auf main-java > domain > CarManufacturer.java und ziehen Sie es in den Entity-Editor auf die Attributes-Fläche.
  5. Wählen Sie im folgenden Dialog die Option Many to One (n:1). 
  6. Übernehmen Sie die Einstellung Bidirectional.
  7. Klicken Sie auf OK.
  8. 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.