Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Entity anlegen

  1. Wählen Sie im Menü File > New > Entity.
  2. Geben Sie bei Entity > Name die Bezeichnung Automaker ein.
  3. Klicken Sie auf Finish.

Image Removed

  1. Image Added

Hinweis:
  • Benamung von Entities - Entities werden i.d.R. in Singular bezeichnet, z.B. Customer, während Datenbanktabellen meist in Plural bezeichnet werden, z.B. Customers.
  • Data Access Object - Die Einstellungen bei Data Access Object können Sie übernehmen, um zu diesem Entity ein gleichnamiges Data Access Object (DAO) zu erzeugen.
  • Persistence Unit - Die Persistence Unit wird automatisch generiert.
Parameter:
Accesss Obect ein
  •  ein neues DAO (Data Access Obect) an.
Ergebnis:
Im 
  • Project Management
 wird unter Entities die Klasse Automaker und unter Data Access die Klasse AutomakerDAO angelegt. 

Image Removed

Automaker
  • - Unter main-java > domain wird die Klasse Customer und unter main-java > dal die Klasse CustomerDAO angelegt. 

Image Added

    • Customer

      Code Block
      languagejava
      themeConfluence
      @Entity
      @DAO(
daoClass
    • CustomerDAO.class)
      @Cacheable(true)
      @Table(name = 
AutomakerDAO.class
    • "Customer")
      public class Customer implements 
Automaker
    • Serializable
      {
    • 
      	private int id;
      	
      	public 
Automaker
    • Customer()
      	{
      		super();
      	
    • }
      
      	@Id
      	@GeneratedValue(strategy = GenerationType.AUTO)
      	@Column(name = "id")
      	public int getId()
      	{
      		return this.id;
      	}
      
      	public void setId(final int id)
      	{
      		this.id = id;
      	}
      
    • }
AutomakerDAO

    • CustomerDAO

      Code Block
      languagejava
      themeConfluence
      public class 
AutomakerDAO
    • CustomerDAO extends 
JPADAO<Automaker
    • JpaDataAccessObject.Default<Customer, Integer>
      {
    • 
      	public 
AutomakerDAO()
    • final 
{ super(Automaker.class); } }

Attribute Hinzufügen

  • Klicken Sie im folgenden Entity-Editor auf Add Attribute, geben Sie bei Name die Bezeichnung company ein. 
  • Übernehmen Sie bei Type den Datentyp String.
  • Klicken Sie auf Speichern.
    Image Removed
    Hinweis:
    • Code-Generierung bei jeder Änderung - Bei jeder Änderung, die Sie im Entity Editor vornehmen, wird sofort der entsprechende Quellcode dazu generiert, überschrieben oder gelöscht.
    • Löschen von Attributen - Die Getter und Setter eines Attributes werden standardmäßig nicht entfernt. Dies ist jedoch empfehlenswert. Klicken Sie deshalb im Hinweis-Dialog auf Yes To All, um auch alle Getter und Setter zu entfernen.
    Parameter:
    • Settings
      • Entity caption - Hier lässt sich ein Attribut oder mehrere Attribute festlegen, die später auf der Oberfläche angezeigt werden sollen, z.B. in einer ComboBox. Auch die Angabe von Trennzeichen ist möglich, z.B. {%company}, {%carmodels}, {%price} ergibt zur Laufzeit BMW, 320, 39000.
      • Table name - Name der Datenbank-Tabelle, falls diese sich vom Entity-Namen unterscheidet, insbesondere bei der Verwendung von Leerzeichen oder kryptischen Bezeichnungen für die entsprechende Datenbank-Tabelle, z.B. CMOD anstelle von Carmodel
      • Table catalog - Angabe des Datenbank Catalog, falls vorhanden.
      • Table schema - Angabe des Datenbank Schemas, falls vorhanden.
        Image Removed
    • Attributes 
      • Name - Bezeichnung des Attributs.
      • Type - Datentyp des Attributs. Zur Auswahl stehen die von Java unterstützten Datentypen. 
        • Primitive Datentypen - Primitive Datentypen intdoubleboolean beginnen mit Kleinbuchstaben und können nur einzelne Werte speichern. In der Auswahlliste nicht aufgeführte Typen lassen sich über die Tastatur angeben, z.B. float.
        • Datentyp Klassen - Zu jedem primitiven Datentyp gibt es in Java eine entsprechende Wrapper-Klasse. Klassen beginnen in Java mit Großbuchstaben. Es ist empfehlenswert die Typ-Klassen zu verwenden, da primitive Datentypen keinen Null Wert annehmen können, der jedoch in Datenbanken häufig verwendet wird.
      • Caption - Die hier angegebene Bezeichnung erscheint zur Laufzeit auf der Oberfläche, z.B. als Spaltenname in einer Table.
        Image Removed
    Editor Funktionen:
    • Add Attribute - Legt ein neues Attribut an.
    • Delete - Entfernt das selektierte Attribut. Der entsprechende Javacode wird sofort gelöscht.  
    • Select all - Selektiert alle Attribute.
    • Clear selection - Hebt die Selektierung auf.
    • Invert selection - Kehrt die aktuelle Selektierung um.
    • Show in Source - Wechselt in die Code-Ansicht und markiert den Code des selektierten Attributs.
    • Open Diagram - Öffnet den ER-Diagram Viewer. 
      Image Removed
    Ergebnis:

    Die Klasse Automaker wird um das Attribut company erweitert.

    Code Block
    languagejava
    themeConfluence
    private String company;
    
    public String getCompany() {
    	return company;
    }
    
    public void setCompany(String attribute) {
    	this.company = attribute;
    }

    1:n / n:1 Relation

  • Wählen Sie im Menü File > New > Entity.  
  • Geben Sie bei Entity > Name die Bezeichnung Carmodel ein. 
  • 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.
  • Klicken Sie im Project Manager bei Entities auf Automaker.java und ziehen Sie dieses Entity per Drag-and-drop in den Entity-Editor.
  • 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.
    Image Removed
    Image Removed
    Ergebnis:

    Entity Carmodel - Die Klasse Carmodel wird um das Attribut automaker vom Typ Automaker erweitert.

    Code Block
    languagejava
    themeConfluence
    @ManyToOne
    @JoinColumn(name = "automaker_id")
    public Automaker getAutomaker() {
    	return automaker;
    }
    
    public void setAutomaker(Automaker automaker) {
    	this.automaker = automaker;
    }

    Entity Automaker - Durch die übernommene Einstellung Bidirectional wird gleichzeitig die Klasse Automaker um eine Liste mit allen Carmodels erweitert.
    Image Removed

    Code Block
    languagejava
    themeConfluence
    @OneToMany(mappedBy = "automaker")
    public List<Carmodel> getCarmodels() {
    	return carmodels;
    }
    
    public void setCarmodels(List<Carmodel> carmodels) {
    	this.carmodels = carmodels;
    }
    
    public Carmodel addCarmodel(Carmodel carmodel) {
    getCarmodels().add(carmodel);
    carmodel.setAutomaker(this);
    return carmodel;
    }
    
    public Carmodel removeCarmodel(Carmodel carmodel) {
    getCarmodels().remove(carmodel);
    carmodel.setAutomaker(null);
    return carmodel;
    }
    Hinweis:
  • Relation im Code per Annotation - Im Code wird die Relation mit Hilfe der Annotationen @ManyToOne, bzw. @OneToMany(mappedBy = "automaker") 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. carmodels.

    n:m Relation

    1. Legen Sie ein neues Entity Extra an.
      1. Wählen Sie im Menü File > New > Entity.
      2. Geben Sie bei Entity > Name die Bezeichnung Extra an und klicken Sie auf Finish.
      3. Klicken Sie im folgenden Entity-Editor auf Add Attribute, geben Sie bei Name die Bezeichnung extra ein und übernehmen Sie bei Type den Datentyp String.
      4. Klicken Sie auf Speichern.

    2. Legen Sie ein neues Entity Car an.
      1. Wählen Sie im Menü File > New > Entity.

      2. Geben Sie bei Entity > Name die Bezeichnung Car an und klicken Sie auf Finish
    3. Definieren Sie eine n:1 Relation zwischen den Entities Carmodel und Car.
      1. Klicken Sie im Project Manager bei Entities auf Carmodel.java und ziehen Sie dieses Entity per Drag-and-drop in den Entity-Editor.
      2. Wählen Sie im folgenden Dialog die Option Many to One (n:1 - Each Carmodel has many Cars) an. 
      3. Klicken Sie auf Ok.
      4. Klicken Sie auf Speichern.
    4. Fügen Sie mit Add Attribute einige weitere Attribute hinzu:
      1. registration vom Typ Date 
      2. mileage vom Typ Integer
      3. kw vom Typ Integer
      4. price vom Typ Double
    5. Definieren Sie eine n:m Relaion zwischen den Entities Car und Extra
      1. Klicken Sie im Project Manager bei Entities auf Extra.java und ziehen Sie dieses Entity per Drag-and-drop in den Entity-Editor.
      2. Wählen Sie im folgenden Dialog die Option Many to Many (n:m - Each Car has many Extras and each Extra has many Cars).
      3. Übernehmen Sie die Einstellung Bidirectional mit dem vorgeschlagenen Namen für die Join Table, die in der Datenbank für die Abbildung einer n:m Relation benötigt wird.
      • static CustomerDAO INSTANCE = new CustomerDAO();
        	
        	public CustomerDAO()
        	{
        		super(Customer.class);
        	}
        }


    • Entity-Editor - Im Entity-Editor wird das neue Entity Customer angezeigt und kann editiert werden.
      Image Added

    Tipps:

    • Attribute - Beim Hinzufügen von Attributen wie name, werden in der Entity Klasse neben der Variable name die Get-Methode getName sowie die Set-Methode setName generiert, mit denen auf die Variable name zugegriffen wird. Die Methoden get und set werden als Getter und Setter bezeichnet.

      Code Block
      languagejava
      themeConfluence
      private String name;
      
      

    ...

    • @Column(name = "`name`")
      public String getName()
      {
      	return name;
      }

    ...

    • 
      

    ...

    • 
      public void setName(String 

    ...

    • noname)
      {
      	this.name = 

    ...

    • noname;
      }


    • Int oder Integer - Es ist empfehlenswert für die Attribute Ihrer Entities Typ-Klassen wie Integer zu verwenden, da primitive Datentypen wie int keinen Null Wert annehmen können, der jedoch in relationalen Datenbanken häufig verwendet wird.
    • Fehlende Java Datentypen - Für die in den Entities verwendeten Java Datentypen werden beim Generieren der Datenbank automatisch entsprechend geeignete Datenbank Datentypen verwendet. 
    • Änderungen am Quellcode werden erkannt - Der Entity Editor ermöglicht Ihnen bidirektionales Arbeiten. Nach jeder einzelnen Änderungen, die Sie im Entity Editor vornehmen, wird automatisch der Quellcode angepasst. Umgekehrt werden nach Änderungen am Quellcode automatisch der Entity-Editor  aktualisiert.

    ...

     

     

    •