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
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 29
Download now
Download to read offline
Recommended
Success Recipe Tamil.pdf
Success Recipe Tamil.pdf
MOHAMED ALI
Design pattern cheat sheet
Design pattern cheat sheet
Rachanee Saengkrajai
Java String class
Java String class
DrRajeshreeKhande
Python regular expressions
Python regular expressions
Krishna Nanda
HTML5 workshop, forms
HTML5 workshop, forms
Robert Nyman
Lambdas and Streams Master Class Part 2
Lambdas and Streams Master Class Part 2
José Paumard
List comprehensions
List comprehensions
Jordi Gómez
Divanam 01-03
Divanam 01-03
venkatesha9
Recommended
Success Recipe Tamil.pdf
Success Recipe Tamil.pdf
MOHAMED ALI
Design pattern cheat sheet
Design pattern cheat sheet
Rachanee Saengkrajai
Java String class
Java String class
DrRajeshreeKhande
Python regular expressions
Python regular expressions
Krishna Nanda
HTML5 workshop, forms
HTML5 workshop, forms
Robert Nyman
Lambdas and Streams Master Class Part 2
Lambdas and Streams Master Class Part 2
José Paumard
List comprehensions
List comprehensions
Jordi Gómez
Divanam 01-03
Divanam 01-03
venkatesha9
Attato
Attato
venkatesha9
Sogasu
Sogasu
onlytelugustories
Anna bhaaryato
Anna bhaaryato
venkatesha9
Fore play
Fore play
venkatesha9
Python for loop
Python for loop
Aishwarya Deshmukh
Dictionary
Dictionary
Pooja B S
Amma koochi
Amma koochi
venkatesha9
What is Python JSON | Edureka
What is Python JSON | Edureka
Edureka!
Class object method constructors in java
Class object method constructors in java
Raja Sekhar
Evari daggaraku vellaali_javaabu
Evari daggaraku vellaali_javaabu
venkatesha9
Turtle graphics
Turtle graphics
grahamwell
Atta pooku mettana
Atta pooku mettana
venkatesha9
Citraangi 01-02
Citraangi 01-02
venkatesha9
171 oke-kutumbam-06
171 oke-kutumbam-06
harishchandra959
Brahtkadhaamanjari
Brahtkadhaamanjari
venkatesha9
تلخيص الفلسفة
تلخيص الفلسفة
Narûtö Bàl'Sèm
Exception Handling
Exception Handling
Reddhi Basu
Rust: Systems Programming for Everyone
Rust: Systems Programming for Everyone
C4Media
Chapter 13 exceptional handling
Chapter 13 exceptional handling
Praveen M Jigajinni
Bra
Bra
venkatesha9
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
Attato
Attato
venkatesha9
Sogasu
Sogasu
onlytelugustories
Anna bhaaryato
Anna bhaaryato
venkatesha9
Fore play
Fore play
venkatesha9
Python for loop
Python for loop
Aishwarya Deshmukh
Dictionary
Dictionary
Pooja B S
Amma koochi
Amma koochi
venkatesha9
What is Python JSON | Edureka
What is Python JSON | Edureka
Edureka!
Class object method constructors in java
Class object method constructors in java
Raja Sekhar
Evari daggaraku vellaali_javaabu
Evari daggaraku vellaali_javaabu
venkatesha9
Turtle graphics
Turtle graphics
grahamwell
Atta pooku mettana
Atta pooku mettana
venkatesha9
Citraangi 01-02
Citraangi 01-02
venkatesha9
171 oke-kutumbam-06
171 oke-kutumbam-06
harishchandra959
Brahtkadhaamanjari
Brahtkadhaamanjari
venkatesha9
تلخيص الفلسفة
تلخيص الفلسفة
Narûtö Bàl'Sèm
Exception Handling
Exception Handling
Reddhi Basu
Rust: Systems Programming for Everyone
Rust: Systems Programming for Everyone
C4Media
Chapter 13 exceptional handling
Chapter 13 exceptional handling
Praveen M Jigajinni
Bra
Bra
venkatesha9
What's hot
(20)
Attato
Attato
Sogasu
Sogasu
Anna bhaaryato
Anna bhaaryato
Fore play
Fore play
Python for loop
Python for loop
Dictionary
Dictionary
Amma koochi
Amma koochi
What is Python JSON | Edureka
What is Python JSON | Edureka
Class object method constructors in java
Class object method constructors in java
Evari daggaraku vellaali_javaabu
Evari daggaraku vellaali_javaabu
Turtle graphics
Turtle graphics
Atta pooku mettana
Atta pooku mettana
Citraangi 01-02
Citraangi 01-02
171 oke-kutumbam-06
171 oke-kutumbam-06
Brahtkadhaamanjari
Brahtkadhaamanjari
تلخيص الفلسفة
تلخيص الفلسفة
Exception Handling
Exception Handling
Rust: Systems Programming for Everyone
Rust: Systems Programming for Everyone
Chapter 13 exceptional handling
Chapter 13 exceptional handling
Bra
Bra
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
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Sebastiano Panichella
Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸
mathanramanathan2005
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
NETWAYS
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
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.ppt
ssuser319dad
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
soniya singh
Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170
Escort Service
Anne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptx
noorehahmad
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
NETWAYS
The Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism Presentation
Nathan Young
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@
vikas rana
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation Track
Sebastiano Panichella
Event 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptx
aryanv1753
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
NETWAYS
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software Engineering
Sebastiano Panichella
James Joyce, Dubliners and Ulysses.ppt !
James Joyce, Dubliners and Ulysses.ppt !
risocarla2016
miladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptx
CarrieButtitta
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Salam Al-Karadaghi
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptx
mavinoikein
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
NETWAYS
Recently uploaded
(20)
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Mathan flower ppt.pptx slide orchids ✨🌸
Mathan flower ppt.pptx slide orchids ✨🌸
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
OSCamp Kubernetes 2024 | A Tester's Guide to CI_CD as an Automated Quality Co...
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
Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.ppt
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Aerocity 🤳 Call Us +919599264170
Call Girls In Aerocity 🤳 Call Us +919599264170
Anne Frank A Beacon of Hope amidst darkness ppt.pptx
Anne Frank A Beacon of Hope amidst darkness ppt.pptx
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
OSCamp Kubernetes 2024 | SRE Challenges in Monolith to Microservices Shift at...
The Ten Facts About People With Autism Presentation
The Ten Facts About People With Autism Presentation
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation Track
Event 4 Introduction to Open Source.pptx
Event 4 Introduction to Open Source.pptx
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software Engineering
James Joyce, Dubliners and Ulysses.ppt !
James Joyce, Dubliners and Ulysses.ppt !
miladyskindiseases-200705210221 2.!!pptx
miladyskindiseases-200705210221 2.!!pptx
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptx
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
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