Java Persistence API 2: Unterschied zwischen den Versionen

Aus Alexander's Wiki
Zeile 6: Zeile 6:


== Entitäten ==
== Entitäten ==
Die Annotation '''@Entity''' macht aus der gewöhnlichen, nicht persistenten Java-Klasse eine persistente Entity. Die Instanzvariable id ist mit '''@Id''' annotiert und wird damit von JPA als Primärschlüsselvariable verwendet.
Die Annotation '''@Entity''' macht aus der gewöhnlichen, nicht persistenten Java-Klasse eine persistente Entity. Die Instanzvariable id ist mit '''@Id''' annotiert und wird damit von JPA als Primärschlüsselvariable verwendet. Ohne weitere Annotation muss die Anwendung dafür Sorge tragen, dass die Entity vor dem Persistieren mit einem gültigen, also noch nicht vergebenen Primärschlüssel versorgt wird.


<source lang="java5">
<source lang="java5">
Zeile 16: Zeile 16:
   @Id
   @Id
   private String id;
   private String id;
  public DemoKlasse() {
    // Hibernate und OpenJPA bieten eigene Generatoren an
    this.id = UUID.randomUUID().toString();
  }


}
}

Version vom 15. April 2013, 15:50 Uhr

JPA ist eine Spezifikation, die von einem JPA-Provider implementiert werden muss. Die bekanntesten sind:

Entitäten

Die Annotation @Entity macht aus der gewöhnlichen, nicht persistenten Java-Klasse eine persistente Entity. Die Instanzvariable id ist mit @Id annotiert und wird damit von JPA als Primärschlüsselvariable verwendet. Ohne weitere Annotation muss die Anwendung dafür Sorge tragen, dass die Entity vor dem Persistieren mit einem gültigen, also noch nicht vergebenen Primärschlüssel versorgt wird.

import javax.persistence.*;

@Entity
public class DemoKlasse {

  @Id
  private String id;

  public DemoKlasse() {
     // Hibernate und OpenJPA bieten eigene Generatoren an
     this.id = UUID.randomUUID().toString();
  }

}

Quellen:

  1. [1] Hibernate JPA-Provider
  2. [2] EclipseLink Refernzimplementierung von JPA
  3. [3] OpenJPA JPA-Provider