Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.

Ähnliche Präsentationen


Präsentation zum Thema: "Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation."—  Präsentation transkript:

1 Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation

2 Embedded Objects 2 Komposition: Mutterobjekt mit eingebetteten Objekten Eingebettete Objekte haben keine eigene Identität Mutterobjekt und eingebettete sind in derselben Tabelle abgelegt

3 Embedded Objects, Beispiel public class Address { private String street; private String city; private String state; private String zip; public class Employee private int id; private String name; private long private Address address; }

4 Enhanced Embeddables (JPA 2.0) Verschachtelung von Embeddables und Embeddables mit Beziehungen public class Assembly ShippingDetail Supplier supplier;... }

5 Zusammengesetzte Primärschlüssel 5 public class EmployeeId implements Serializable { protected String country; protected int id; } // Variante EmployeeId.class public class Employee protected String protected int id; } // Variante public class Employee public EmployeeId id; }

6 Composite Primary Key With Relationships (JPA public class Part Supplier supplier; } public class PartPK { int partNo; int supplier; }

7 Read-Only Mappings und Optional = false, updateable = false) = true) // Default 7

8 Mehrere Tabellen pro Entity Gelegentlich wird eine Entity in der Datenbank in mehrere Tabellen modelliert oder muss umgekehrt aus mehreren Tabellen zusammengesetzt werden. Eine Entity kann beliebig viele Sekundärtabellen name = "Employee" name = "EmployeeExt", pkJoinColumns = referencedColumnName = "id")}) public class Employee {... }

9 Mapping von SQL-Views Komplexe Abfragen werden in einer Datenbank gerne als (materialisierte) View vorgehalten. Um Performance-Vorteile zu nutzen, kann eine View wie eine Entity angesprochen werden. Beispiel: public class protected long insertable=false, updatable=false) protected int numPhones; //... CREATE VIEW employeestats ( id, numPhones ) AS SELECT e.id, COUNT(p.*) FROM employee e LEFT OUTER JOIN PHONES P on (…) group by e.id

10 Vererbung Vererbungshierarchien können problemlos verwendet und abgebildet werden. Klassen können abstrakt oder konkret sein. Alle Klassen in der Vererbungshierarchie müssen den Primärschlüssel der Basisklasse verwenden (erben). Es gibt vier Mappingstrategien auf die Datenbank: Eine einzige Tabelle für die gesamte Verbungshierarchie Eine Tabelle für jede konkrete Klasse Eine Tabelle für jede Klasse Mapped Superclass 10

11 public class public class DesignProject extends public class QualityProject extends Project

12 public class public class DesignProject extends public class QualityProject extends Project

13 TABLE_PER_CLASS public class public class DesignProject extends public class QualityProject extends Project

14 MAPPED_SUPERCLASS 14 // Klasse public abstract class protected Integer id; protected Integer version; protected Timestamp createdAt; protected String createdFrom; protected Timestamp updatedAt; protected String updatedFrom; // Klasse public class Phone extends BaseEntity


Herunterladen ppt "Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation."

Ähnliche Präsentationen


Google-Anzeigen