05 - JPA Flashcards

1
Q

Ziel: Object Relational Mapping (ORM)

A

Zusammenhang zwischen Objekte und deren Attribute mit Relationen automatisiert schaffen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Definition: Java Persistence API (JPA)

A

Diese API ist ein Standard zur Persistierung von Objekten, der Mapping zwischen Objekten und Relationen automatisiert. Es sollten weiterhin Datenbank-Zugriffe und SQL-Befehle schon durch libraries selbst erstellt werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Vorteil: Java Persistence API

A

Viel Programmierarbeit kann mit der JPA erspart werden.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Definition: JPA-Provider

A

Ein JPA-Provider implementiert den Standard für JPA selber. Hiervon sind einige bekannte beispiele EclipseLink, Hibernate ORM und Apache OpenJPA.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Definition: Entitätsklasse

A

Eine Klasse, deren Objekte von JPA persistiert werden sollen. Die Entitätsklasse wird dann mit Annotationen je nach Zweckmäßigkeit annotiert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Syntax: Annotationen

A

@ < Name der Annotation >

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Syntax: 1:1-Beziehung zwischen Entitäten

A

@OneToOne
@JoinColumn(name = “fremdschlüssel_column_name”)

Name der spalte immer nach Schema: klassenname_spaltenname

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Syntax: n:1-Beziehung zwischen Entitäten

A

@ManyToOne
@JoinColumn(name = “fremdschlüssel_column_name”)

Name der spalte immer nach Schema: klassenname_spaltenname

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Syntax: n:m-Beziehung zwischen Entitäten

A

@ManyToMany
@JoinTable(name = “name_hilfstabelle”,
joinColumns = {@JoinColumn(name = “column_name_richtung_entitätsklasse”)},
inverseJoinColumns = {@JoinColumn(name = “column_name_richtung_fremdschlüssel”)}

Name der spalte immer nach Schema: klassenname_spaltenname

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Objektlebenszyklus: Phasen (4)

A

Nicht unbedingt in dieser Reihenfolge

1) Transient
2) Managed
3) Detached
4) Removed

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

EntityManager Methoden (6)

A

1) getTransaction().begin()
2) getTransaction().commit()
3) persist(Objekt)
4) find(Entitätsklasse.class, gesuchter Wert)
5) refresh(Objekt)
6) remove(Objekt)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Syntax: EntityManager Erzeugen (2)

A

1) EntityManagerFactory factory = Persistence.createEntityManagerFactory(“persistence_unit_name”);
2) EntityManager em = factory.createEntityManager();

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Syntax: JPA-Queries (2)

A

1) Query query = em.createQuery(“JPQL_Syntax”)

2) TypedQuery typedQuery = em.createQuery(“JPQL_Syntax”, Class);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Syntax: Query Results (2)

A

1) List liste = query.getResultList();

2) List < T > liste = typedQuery.getResultList();

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Syntax: Entitätsklasse (Annotation)

A
@Entity
----------------
Wenn die Klasse anders heist als im DBMS: 
@Entity
@Table(name = "Tabellenname in DB)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Syntax: Primärschlüssel (Annotation)

A

@Id

@GeneratedValue