Publikationen

Themen


Fragen zu EJB 3.0 ?
Fragen Sie doch einfach ein Mitglied der EJB 3.0 Expert Group: Oliver Ihns. Einfach auf den rechts stehenden EMail-Link klicken.



Die EJB-Forumswebsite

zum Forum...

 

 

::: Übersicht der EJB 3.0 & Java Persistence API Meta-Annotationen :::

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

Index

A?

B

C

D?

E

F

G?

H?

I?

J?

K?

L?

M

N

O

P

Q

R?

S

T

U?

V?

W?

X?

Y?

Z?

Alle


B     nach oben

@Basic

TBD


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


M     nach oben

@ManyToMany

TBD

@ManyToOne

TBD


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


O     nach oben

@OneToMany

TBD

@OneToOne

TBD


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.

EJB 3.0-Kolumne

EJB 3.0-Kolumne im Javamagazin!

Im Javamagazin gibt es seit Ausgabe 2/2005 die EJB 3.0-Kolumne von Oliver Ihns, in der er jeden Monat - bis zur finalen Version in 2006 - einen dedizierten Aspekt von EJB 3.0 beleuchtet.


Unser EJB-Buch

Das aktuelle Buch zu EJB 2.1.

Erschienen im Oldenbourg Wissenschafts-
verlag
. Vielfach eingesetzt in Praxis und Studium.
mehr...


EJB-Poster

Siehe Poster


    Letzte Änderung: 21.02.2006 - © 2001-2006 [objects-at-work]

Impressum - Kontakt