Folgend stellen wir eine Übersicht der in EJB 3.0 und der Java Persistence API eingeführten und verwendeten Meta-Annoationen zur Verfügung.
WORK IN PROGRESS - Wir sind zurzeit dabei diese Übersicht aufzubauen
Wenn Sie Begriffe vermissen, die Ihrer Meinung nach erklärt gehören oder bei Fragen, mailen Sie uns doch einfach unter
|
C nach oben
|
|
@Column
|
TBD
|
|
@ColumnResult
|
TBD
Subelement von @SqlResultSetMapping
|
|
E nach oben
|
|
@Entity
|
Kennzeichnet eine Klasse als Entity. Der EJB-Container und der Persistence Provider erweitern die Klasse (das POJO) entsprechend um Funktionalitäten wie Transaktionalität, Persistenz etc.
|
|
@EntityResult
|
Subelement von @SqlResultSetMapping
|
|
@ExludeDefaultListeners
|
TBD
|
|
@EntityListeners
|
TBD
|
|
@ExcludeSuperclassListeners
|
TBD
|
|
F nach oben
|
|
@FieldResult
|
Über @FieldResult wird das Mapping einer Column aus dem SELECT-Statement einer Query auf ein Attribut einer Entity definiert.
Subelement von @EntityResult
|
|
N nach oben
|
|
@NamedNativeQuery
|
Die @NamedNativeQuery-Annoation wird verwendet, um eine benannte native SQL-Abfrage zu definieren.
|
|
@NamedNativeQueries
|
Collection von @NamedNativeQuery
|
|
@NamedQuery
|
Die @NamedQuery-Annoation wird verwendet, um eine benannte EJB QL-Abfrage zu definieren.
|
|
@NamedQueries
|
Collection von @NamedQuery
|
|
P nach oben
|
|
@PersistenceContext
|
TBD
|
|
@PersistenceProperty
|
TBD
Subelement von @PersistenceContext
|
|
@PersistenceContexts
|
TBD
|
|
@PersistenceUnit
|
TBD
|
|
@PersistenceUnits
|
TBD
|
|
@PostLoad
|
Life Cycle-Methode einer Entity. Wird vom EJB-Container nach dem Laden der persistenten Daten und dem Füllen dieser Daten in die Attribute einer Entity vom Container aufgerufen.
|
|
@PostPersistence
|
Life Cycle-Methode einer Entity. Wird vom EJB-Container nach dem Speichern einer Entität vom EJB-Container.
|
|
@PostRemove
|
TBD
|
|
@PostUpdate
|
TBD
|
|
@PrePersist
|
TBD
|
|
@PreRemove
|
TBD
|
|
@PreUpdate
|
TBD
|
|
Q nach oben
|
|
@QueryHint
|
Subelement von @NamedQuery
Subelement von @NamedNativeQuery
|
|
S nach oben
|
|
@SecondaryTable
|
Die @SecondaryTable Meta-Annotation wird verwendet, um das Mapping auf eine Sekundärtabelle einer Entität (einer mit @Entity annotierten Java-Klasse) zu deklarieren. D.h. ein Teil der Attribute der Java-Klasse stammen aus der mittels @SecondaryTable angegebenen Datenbanktabelle.
Wird die @SecondaryTable Meta-Annotation nicht verwendet, bedeutet dies, dass alle Attribute einer Entität aus der Primärtabelle stammen bzw. auf die Primärtabelle gemappt werden.
Deklaration der vollständigen Meta-Annotation
@Target({TYPE}) @Retention(RUNTIME)
public @interface SecondaryTable {
String name();
String catalog() default "";
String schema() default "";
PrimaryKeyJoinColumn[] pkJoinColumns() default {};
UniqueConstraint[] uniqueConstraints() default {};
}
Beispiel
@Entity
@Table(name="CUSTOMER")
@SecondaryTable(name="ADDRESS")
public class Customer {
...
}
|
|
@SecondaryTables
|
Meta-Annotation zur Klammerung einer Menge von @SecondaryTable. D.h. Wenn bei einer Enität mehr als eine @SecondaryTable-Annotation angegeben wird, dann müssen diese in eine @SecondaryTables-Annotation eingebettet werden (man achte auf den Plural). Dies bedeutet, dass eine Entität auf mehrere Sekundärtabellen gemappt wird bzw. die Daten der Entität über mehrere Datenbanktabellen verteilt sind.
Deklaration der vollständigen Meta-Annotation
@Target({TYPE}) @Retention(RUNTIME)
public @interface SecondaryTables {
SecondaryTable[] value();
}
Beispiel
@Entity
@Table(name="CUSTOMER")
@SecondaryTables({
@SecondaryTable(name="ADDRESS"),
@SecondaryTable(name="CUSTOMER_CLASSIFICATION")
})
public class Customer {
...
}
|
|
@Serialized
|
TBD
|
|
@SqlResultSetMapping
|
TBD
|
|
@SqlResultSetMappings
|
Collection von @SqlResultSetMapping
|
|
T nach oben
|
|
@Table
|
Mittels @Table wird die Primärtabelle eines persistenten Objektes bzw. einer Enität deklariert. Innerhalb der Annotation kann im name-Element der Name der Datenbank-Tabelle angegeben werden, auf die das Objekt (als technische Repräsentation der Entität) gemappt wird.
Wenn die Entität bzw. deren Daten auf mehrere Tabellen verteilt ist (Anmerkung: dies wird als Multi-table Mapping bezeichnet), können über die Annotation @SecondaryTable beliebig viele Sekundärtabellen für die Entität angegeben werden.
@Entity
@Table(name = "CUSTOMER")
public class Customer {
...
}
Wird @Table nicht verwendet, verwendet der Persistence Runtime Provider standardmässig den Bezeichner (der Name) der Entität (also der mit @Enitity annotierten Java-Klasse) als Namen für die zu mappende Primärtabelle.
|