Submit Search
Upload
JPA - Java Persistence API
•
0 likes
•
103 views
Thomas Wöhlke
Follow
Vortrag bei ObjectCode GmbH, Lünen anno 2008 sowie ImmobilienScout GmbH, Berlin anno 2009
Read less
Read more
Presentations & Public Speaking
Report
Share
Report
Share
1 of 29
Download now
Download to read offline
Recommended
Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By Step
Guo Albert
Hibernate architecture
Hibernate architecture
Anurag
Hibernate Presentation
Hibernate Presentation
guest11106b
Lambda and Stream Master class - part 1
Lambda and Stream Master class - part 1
José Paumard
JDBC Java Database Connectivity
JDBC Java Database Connectivity
Ranjan Kumar
JPA For Beginner's
JPA For Beginner's
NarayanaMurthy Ganashree
Functional and Algebraic Domain Modeling
Functional and Algebraic Domain Modeling
Debasish Ghosh
Understanding LINQ in C#
Understanding LINQ in C#
MD. Shohag Mia
Recommended
Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By Step
Guo Albert
Hibernate architecture
Hibernate architecture
Anurag
Hibernate Presentation
Hibernate Presentation
guest11106b
Lambda and Stream Master class - part 1
Lambda and Stream Master class - part 1
José Paumard
JDBC Java Database Connectivity
JDBC Java Database Connectivity
Ranjan Kumar
JPA For Beginner's
JPA For Beginner's
NarayanaMurthy Ganashree
Functional and Algebraic Domain Modeling
Functional and Algebraic Domain Modeling
Debasish Ghosh
Understanding LINQ in C#
Understanding LINQ in C#
MD. Shohag Mia
Java 8 - Features Overview
Java 8 - Features Overview
Sergii Stets
Collections Framework
Collections Framework
Sunil OS
Collections in Java Notes
Collections in Java Notes
Shalabh Chaudhary
Collections Api - Java
Collections Api - Java
Drishti Bhalla
Java Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and Example
kamal kotecha
9. ES6 | Let And Const | TypeScript | JavaScript
9. ES6 | Let And Const | TypeScript | JavaScript
pcnmtutorials
PHP Powerpoint -- Teach PHP with this
PHP Powerpoint -- Teach PHP with this
Ian Macali
Exception Handling
Exception Handling
Sunil OS
07 java collection
07 java collection
Abhishek Khune
Java Threads and Concurrency
Java Threads and Concurrency
Sunil OS
Java Basics
Java Basics
Sunil OS
Hibernate Tutorial
Hibernate Tutorial
Ram132
Java - Collections framework
Java - Collections framework
Riccardo Cardin
Second Level Cache in JPA Explained
Second Level Cache in JPA Explained
Patrycja Wegrzynowicz
Java Interview Questions
Java Interview Questions
soniajessica2
jpa-hibernate-presentation
jpa-hibernate-presentation
John Slick
Java exception handling ppt
Java exception handling ppt
JavabynataraJ
Java beans
Java beans
Rajkiran Mummadi
Generics
Generics
Ravi_Kant_Sahu
L'API Collector dans tous ses états
L'API Collector dans tous ses états
José Paumard
Smoothing Your Java with DSLs
Smoothing Your Java with DSLs
intelliyole
New Features of JSR 317 (JPA 2.0)
New Features of JSR 317 (JPA 2.0)
Markus Eisele
More Related Content
What's hot
Java 8 - Features Overview
Java 8 - Features Overview
Sergii Stets
Collections Framework
Collections Framework
Sunil OS
Collections in Java Notes
Collections in Java Notes
Shalabh Chaudhary
Collections Api - Java
Collections Api - Java
Drishti Bhalla
Java Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and Example
kamal kotecha
9. ES6 | Let And Const | TypeScript | JavaScript
9. ES6 | Let And Const | TypeScript | JavaScript
pcnmtutorials
PHP Powerpoint -- Teach PHP with this
PHP Powerpoint -- Teach PHP with this
Ian Macali
Exception Handling
Exception Handling
Sunil OS
07 java collection
07 java collection
Abhishek Khune
Java Threads and Concurrency
Java Threads and Concurrency
Sunil OS
Java Basics
Java Basics
Sunil OS
Hibernate Tutorial
Hibernate Tutorial
Ram132
Java - Collections framework
Java - Collections framework
Riccardo Cardin
Second Level Cache in JPA Explained
Second Level Cache in JPA Explained
Patrycja Wegrzynowicz
Java Interview Questions
Java Interview Questions
soniajessica2
jpa-hibernate-presentation
jpa-hibernate-presentation
John Slick
Java exception handling ppt
Java exception handling ppt
JavabynataraJ
Java beans
Java beans
Rajkiran Mummadi
Generics
Generics
Ravi_Kant_Sahu
L'API Collector dans tous ses états
L'API Collector dans tous ses états
José Paumard
What's hot
(20)
Java 8 - Features Overview
Java 8 - Features Overview
Collections Framework
Collections Framework
Collections in Java Notes
Collections in Java Notes
Collections Api - Java
Collections Api - Java
Java Hibernate Programming with Architecture Diagram and Example
Java Hibernate Programming with Architecture Diagram and Example
9. ES6 | Let And Const | TypeScript | JavaScript
9. ES6 | Let And Const | TypeScript | JavaScript
PHP Powerpoint -- Teach PHP with this
PHP Powerpoint -- Teach PHP with this
Exception Handling
Exception Handling
07 java collection
07 java collection
Java Threads and Concurrency
Java Threads and Concurrency
Java Basics
Java Basics
Hibernate Tutorial
Hibernate Tutorial
Java - Collections framework
Java - Collections framework
Second Level Cache in JPA Explained
Second Level Cache in JPA Explained
Java Interview Questions
Java Interview Questions
jpa-hibernate-presentation
jpa-hibernate-presentation
Java exception handling ppt
Java exception handling ppt
Java beans
Java beans
Generics
Generics
L'API Collector dans tous ses états
L'API Collector dans tous ses états
Similar to JPA - Java Persistence API
Smoothing Your Java with DSLs
Smoothing Your Java with DSLs
intelliyole
New Features of JSR 317 (JPA 2.0)
New Features of JSR 317 (JPA 2.0)
Markus Eisele
IOC + Javascript
IOC + Javascript
Brian Cavalier
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
CHOOSE
XML-Free Programming : Java Server and Client Development without <>
XML-Free Programming : Java Server and Client Development without <>
Arun Gupta
Play 2.0
Play 2.0
elizhender
Android and the Seven Dwarfs from Devox'15
Android and the Seven Dwarfs from Devox'15
Murat Yener
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Dave Steinberg
CDI in JEE6
CDI in JEE6
PrasannaKumar Sathyanarayanan
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
Dave Steinberg
Greach 2019 - Creating Micronaut Configurations
Greach 2019 - Creating Micronaut Configurations
Iván López Martín
Refactoring
Refactoring
Amir Barylko
Angular JS2 Training Session #1
Angular JS2 Training Session #1
Paras Mendiratta
Porting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQL
Peter Eisentraut
How AngularJS Embraced Traditional Design Patterns
How AngularJS Embraced Traditional Design Patterns
Ran Mizrahi
OWB11gR2 - Extending ETL
OWB11gR2 - Extending ETL
Suraj Bang
Eclipse Modeling Framework
Eclipse Modeling Framework
Ajay K
Groovy On Trading Desk (2010)
Groovy On Trading Desk (2010)
Jonathan Felch
Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)
Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)
Theo Jungeblut
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
Fabio Franzini
Similar to JPA - Java Persistence API
(20)
Smoothing Your Java with DSLs
Smoothing Your Java with DSLs
New Features of JSR 317 (JPA 2.0)
New Features of JSR 317 (JPA 2.0)
IOC + Javascript
IOC + Javascript
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
XML-Free Programming : Java Server and Client Development without <>
XML-Free Programming : Java Server and Client Development without <>
Play 2.0
Play 2.0
Android and the Seven Dwarfs from Devox'15
Android and the Seven Dwarfs from Devox'15
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
CDI in JEE6
CDI in JEE6
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
Greach 2019 - Creating Micronaut Configurations
Greach 2019 - Creating Micronaut Configurations
Refactoring
Refactoring
Angular JS2 Training Session #1
Angular JS2 Training Session #1
Porting Applications From Oracle To PostgreSQL
Porting Applications From Oracle To PostgreSQL
How AngularJS Embraced Traditional Design Patterns
How AngularJS Embraced Traditional Design Patterns
OWB11gR2 - Extending ETL
OWB11gR2 - Extending ETL
Eclipse Modeling Framework
Eclipse Modeling Framework
Groovy On Trading Desk (2010)
Groovy On Trading Desk (2010)
Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)
Lego for Software Engineers at Silicon Valley Code Camp 2011 (2010-10-10)
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
More from Thomas Wöhlke
Stahlkirche Otto Bartning 1928
Stahlkirche Otto Bartning 1928
Thomas Wöhlke
Pierre Bourdieu - Elemente einer soziologischen Theorie der Kunstwahrnehmung
Pierre Bourdieu - Elemente einer soziologischen Theorie der Kunstwahrnehmung
Thomas Wöhlke
Treesort Algorithmus und Datenstruktur
Treesort Algorithmus und Datenstruktur
Thomas Wöhlke
Produkt und Unternehmens Vorstellung in der Berufsschule
Produkt und Unternehmens Vorstellung in der Berufsschule
Thomas Wöhlke
OO Methodik für eCommerce-Engineering und -Consulting mit UML
OO Methodik für eCommerce-Engineering und -Consulting mit UML
Thomas Wöhlke
Zeitmanagement - Referat
Zeitmanagement - Referat
Thomas Wöhlke
Max Imdahl Ikonik
Max Imdahl Ikonik
Thomas Wöhlke
More from Thomas Wöhlke
(7)
Stahlkirche Otto Bartning 1928
Stahlkirche Otto Bartning 1928
Pierre Bourdieu - Elemente einer soziologischen Theorie der Kunstwahrnehmung
Pierre Bourdieu - Elemente einer soziologischen Theorie der Kunstwahrnehmung
Treesort Algorithmus und Datenstruktur
Treesort Algorithmus und Datenstruktur
Produkt und Unternehmens Vorstellung in der Berufsschule
Produkt und Unternehmens Vorstellung in der Berufsschule
OO Methodik für eCommerce-Engineering und -Consulting mit UML
OO Methodik für eCommerce-Engineering und -Consulting mit UML
Zeitmanagement - Referat
Zeitmanagement - Referat
Max Imdahl Ikonik
Max Imdahl Ikonik
Recently uploaded
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
henrik385807
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
saastr
George Lever - eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024
eCommerce Institute
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
soniya singh
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@
vikas rana
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
soniya singh
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
Pooja Nehwal
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
Basil Achie
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Salam Al-Karadaghi
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
FamilyWorshipCenterD
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Pooja Nehwal
Motivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdf
akankshagupta7348026
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Krijn Poppe
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
eCommerce Institute
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
henrik385807
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Kayode Fayemi
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AI
Tatiana Gurgel
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
henrik385807
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
Pooja Nehwal
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
anamikaraghav4
Recently uploaded
(20)
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
SaaStr Workshop Wednesday w: Jason Lemkin, SaaStr
George Lever - eCommerce Day Chile 2024
George Lever - eCommerce Day Chile 2024
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Navi Mumbai Call Girls Service Pooja 9892124323 Real Russian Girls Looking Mo...
Motivation and Theory Maslow and Murray pdf
Motivation and Theory Maslow and Murray pdf
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Presentation for the Strategic Dialogue on the Future of Agriculture, Brussel...
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Andrés Ramírez Gossler, Facundo Schinnea - eCommerce Day Chile 2024
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Open Source Strategy in Logistics 2015_Henrik Hankedvz-d-nl-log-conference.pdf
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Governance and Nation-Building in Nigeria: Some Reflections on Options for Po...
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AI
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
VVIP Call Girls Nalasopara : 9892124323, Call Girls in Nalasopara Services
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
JPA - Java Persistence API
1.
JPA - Java
Persistence API Thomas Wöhlke ObjectCode GmbH 12.03.2009
2.
JPA: Agenda © 2009
ObjectCode GmbH
3.
Domain Object Model ©
2009 ObjectCode GmbH
4.
Object-Relational Mapping Analogie: OO
RDB Klasse Tabelle Objekt Zeile Variable Spalte Wert Feld Domain Object Modell = ERD ? © 2009 ObjectCode GmbH
5.
O/R Impedance Mismatch ©
2009 ObjectCode GmbH
6.
O/R Impedance Mismatch ©
2009 ObjectCode GmbH
7.
Domain Object Model:
GLE © 2009 ObjectCode GmbH
8.
... und die
Physik? • v(Harddisk) << v(RAM) • CPU 99% idle • Process 99% IO_WAIT • Page Impressions SQL-Requests? © 2009 ObjectCode GmbH
9.
Anno Domini 2004... ©
2009 ObjectCode GmbH © 2004-2005 TheServerside.com
10.
Hibernate Mapping von POJO‘s: 2.
Java Bean API 3. Collection API (Generics) 4. Mapping: XML oder Hibernate-Annotations Hibernate ist ein JPA-Vendor: Hibernate-Core Hibernate-Annotations Hibernate Entity Manager © 2009 ObjectCode GmbH
11.
Von Hibernate nach
JPA © 2009 ObjectCode GmbH
12.
JPA im JEE-Stack ©
2009 ObjectCode GmbH
13.
persistence.xml (Java EE) <?xml
version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="JPM_DB"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/JpmDS</jta-data-source> <properties> <property name="hibernate.hbm2ddl.auto" value="create-drop"/> <property name="hibernate.show_sql" value="true"/> <!-- These are the default for JBoss EJB3, but not for HEM: --> <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/> </properties> </persistence-unit> </persistence> © 2009 ObjectCode GmbH
14.
persistence.xml (Java SE) <?xml
version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="JPM_DB"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <class>org.woehlke.projecteering.kernel.calendar.pao.Day</class> <class>org.woehlke.projecteering.kernel.minutes.pao.Event</class> <class>org.woehlke.projecteering.kernel.minutes.pao.Minutes</class> <class>org.woehlke.projecteering.kernel.minutes.pao.MinutesItem</class> <class>org.woehlke.projecteering.kernel.projects.pao.Project</class> <class>org.woehlke.projecteering.kernel.projects.pao.ProjectCategory</class> <class>org.woehlke.projecteering.kernel.timerecording.pao.TimeRecordingItem</class> <class>org.woehlke.projecteering.kernel.userrights.pao.Company</class> <class>org.woehlke.projecteering.kernel.userrights.pao.Team</class> <class>org.woehlke.projecteering.kernel.userrights.pao.User</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <property name="hibernate.hbm2ddl.auto" value="create-drop"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.generate_statistics" value="true"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> <property name="hibernate.connection.username" value="jpm"/> <property name="hibernate.connection.password" value="jpmpwd"/> <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jpm"/> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> </properties> </persistence-unit> </persistence> © 2009 ObjectCode GmbH
15.
Mapping der Klassen
1 public class Customer extends Person { @OneToMany(mappedBy=“purchaser”) Set<Order> orders = new HashSet<Order>(); protected Customer() { } // for loading from db public Customer(String fname, String lname) { super(fname, lname); } public void addOrder(Order o) { orders.add(o); } public Set<Order> getOrders() { return orders; } } © 2009 ObjectCode GmbH
16.
Mapping der Klassen
2 @Entity @Table(name=“PRODUCTS”) public class Product { @Id @GeneratedValue @Column(name=“PRODUCT_PK”) long id; @Version int oplock; // column defaults to “OPLOCK” String name; // column defaults to “NAME” @ManyToOne @JoinColumn(name=“SUPP_FK”, referencedColumnName=“SUPP_PK”) Supplier supplier; ... } © 2009 ObjectCode GmbH
17.
Mapping der Assoziationen Kardinalität:
1:1 OneToOne 1:n OneToMany n:m ManyToMany Richtung: 1:n -> OneToMany N:1 <- ManyToOne Sichtbarkeit: Unidirektional -> Bidirektional <-> © 2009 ObjectCode GmbH
18.
Mapping der Vererbung 2.
Eine Tabelle pro Klassen-Hierarchie 3. Eine Tabelle pro konkrete Klasse 4. Eine Tabelle pro Subklasse 5. Non-Entity Vererbung 6. Keine Vererbung: Embbeding © 2009 ObjectCode GmbH
19.
Mapping der Vererbung? ©
2009 ObjectCode GmbH
20.
Einsatz von JPA
im JBoss/EJB3 @Stateless public class MinutesItemDao extends BaseDao<MinutesItem> implements IMinutesItemDao { @PersistenceContext(unitName = "JPM_DB") private EntityManager entityManager; public MinutesItem findById(Long id) { return entityManager.find(MinutesItem.class,id); } public EntityManager getEntityManager() { return entityManager; } public void setEntityManager(EntityManager entityManager) { this.entityManager = entityManager; } } © 2009 ObjectCode GmbH
21.
Einsatz von JPA
in Spring/Tomcat @Transactional public class MinutesDao extends BaseDao<Minutes> implements IMinutesDao { public Minutes findById(Long id) { return jpaTemplate.find(Minutes.class,id); } } © 2009 ObjectCode GmbH
22.
EJB-QL Query q =
em.createQuery(“select c from Customer c where c.firstName = :fname order by c.lastName”); q.setParameter(“fname”, “Joe”); q.setFirstResult(20); q.setMaxResults(10); List<Customer> customers = (List<Customer>) q.getResultList(); // all orders, as a named query @Entity @NamedQuery(name=“Order:findAllOrders”, query=“select o from Order o”); public class Order { ... } Query q = em.createNamedQuery(“Order:findAllOrders”); © 2009 ObjectCode GmbH
23.
Lebenszyklus Persistente Objekte 2.
Neu, transient (@Id id == null) 3. Persistent (@Id id != null) 4. Detached: – Wie persistent (@Id id!= null) – Jedoch ausserhalb des EntityManager Kontext – Lazy Loading nicht möglich! – Änderungen in DB sichern mit merge © 2009 ObjectCode GmbH
24.
EJB-QL // all people,
via a custom SQL statement Query q = em.createNativeQuery(“SELECT ID, VERSION, SUBCLASS, FIRSTNAME, LASTNAME FROM PERSON”, Person.class); List<Person> people = (List<Person>) q.getResultList(); // single-result aggregate: average order total price Query q = em.createQuery(“select avg(i.price) from Item i”); Number avgPrice = (Number) q.getSingleResult(); // traverse to-many relations Query q = em.createQuery(“select o from Order o left join o.items li where li.price > :price”); q.setParameter(“price”, 1000); List<Order> orders = (List<Order>) q.getResultList(); © 2009 ObjectCode GmbH
25.
Lazy Loading • Supplier
s = order.getItem().getProduct().getSupplier(); • Bei Aufruf eines Getters wird Objekt aus DB-Zeile nachgeladen. • Ohne Lazy Loading muss komplettes Objekt-Netz geladen werden. • Struktur des Objekt-Netzes variiert je nach Web-View © 2009 ObjectCode GmbH
26.
DAO und „Unit
of Work“ © 2009 ObjectCode GmbH
27.
Ausblick: Seam • Kern-Entwickler
von Hibernate sind nun im Seam-Projekt • O/R-Mapping von EJB3/JPA auch für die Webapplikation • OO im Datenbankbackend durch ORM • OO im Webfrontend durch JSF • Im Conversation-Scope ist Lazy-Loading möglich. • Detached Objects können für die Webview verwendet werden: Kein DTO-Antipattern © 2009 ObjectCode GmbH
28.
RTFM: http://www.hibernate.org/ O‘Reilly: Enterprise
JavaBeans 3.0 Manning: EJB3 in Action Manning: Hibernate in Action Literatur © 2009 ObjectCode GmbH
29.
FRAGEN? Fragen! ... Vielen
Dank für die Aufmerksamkeit © 2009 ObjectCode GmbH
Download now