Professional Documents
Culture Documents
Martin Kraj
Systinet / HP
CZJUG http://java.cz/jug
Content
JPA introduction
Entities
Relationships, Inheritance, JPQL
Callbacks, Listeners, Transactions
EntityManager, PeristenceContext
Hibernate vs. Toplink, IDE support
Demo application
CZJUG http://java.cz/jug
CZJUG http://java.cz/jug
Primary features
JPA vendors
Content
JPA introduction
Entities
Relationships, Inheritance, JPQL
Callbacks, Listeners, Transactions
EntityManager, PeristenceContext
Hibernate vs. Toplink, IDE support
Demo application
CZJUG http://java.cz/jug
Entities
Serializable POJO annotated with
@Entity
Persistent state
@AccessType.FIELD, @AccessType.PROPERTY
Entities may also have transient state
@Transient, transient
Optimistic locking - @Version
CZJUG http://java.cz/jug
Entity identification
CZJUG http://java.cz/jug
CascadeType
FetchType
LAZY, EAGER
CZJUG http://java.cz/jug
Entity lifecycle
CZJUG http://java.cz/jug
Transaction commit
Detach
EM.clear() is called
deserialized
CZJUG http://java.cz/jug
Content
JPA introduction
Entities
Relationships, Inheritance, JPQL
Callbacks, Listeners, Transactions
EntityManager, PeristenceContext
Hibernate vs. Toplink, IDE support
Demo application
CZJUG http://java.cz/jug
Relationships
CZJUG http://java.cz/jug
Inheritance
Mixed inheritance hierarchies, entities
and non-entities, either concrete or
abstract
@MappedSuperclass
@Inheritance
CZJUG http://java.cz/jug
Inheritance
CZJUG http://java.cz/jug
JPQL
createQuery()
@SQLResultSetMapping, createNativeQuery()
CZJUG http://java.cz/jug
Content
JPA introduction
Entities
Relationships, Inheritance, JPQL
Callbacks, Listeners, Transactions
EntityManager, PeristenceContext
Hibernate vs. Toplink, IDE support
Demo application
CZJUG http://java.cz/jug
Transactions
EntityTransaction
Content
JPA introduction
Entities
Relationships, Inheritance, JPQL
Callbacks, Listeners, Transactions
EntityManager, PeristenceContext
Hibernate vs. Toplink, IDE support
Demo application
CZJUG http://java.cz/jug
Packaging
persistence.xml
Defines
Etities
Persistence provider
Persistent Unit
Container managed in EE
@PersistenceContext, @PersistenceUnit
EntityManager, EntityManagerFactory
Transaction-scoped
PersistenceContextType.TRANSACTION
PersistenceContextType.EXTENDED
CZJUG http://java.cz/jug
Content
JPA introduction
Entities
Relationships, Inheritance, JPQL
Callbacks, Listeners, Transactions
EntityManager, PeristenceContext
Hibernate vs. Toplink, IDE support
Demo application
CZJUG http://java.cz/jug
13 files, 4.2 MB
Cleaner DDL
generation
2 files, 2.5 MB
Better documentation
Checks integrity
Showsql more
verbose
CZJUG http://java.cz/jug
CZJUG http://java.cz/jug
Content
JPA introduction
Entities
Relationships, Inheritance, JPQL
Callbacks, Listeners, Transactions
EntityManager, PeristenceContext
Hibernate vs. Toplink, IDE support
Demo application
CZJUG http://java.cz/jug
CZJUG http://java.cz/jug
CZJUG http://java.cz/jug
JPA usage
JPA + Spring using JpaDaoSupport
JPA + Spring in SE
JPA in SE
JPA in EE
References
Nice Documentations
http://www.oracle.com/technology/products/ias/toplink/jpa/resources-index.html
http://incubator.apache.org/openjpa/docs/openjpa-0.9.0-incubating/manual/manu
JPA Extensions
http://www.oracle.com/technology/products/ias/toplink/jpa/resources/toplink-jpa-e
http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/#entity-h
http://blogs.sun.com/klingo/entry/jpa_netbeans_5_5_vs
http://www.java.net/pub/pq/122
http://www.jpox.org/
http://jpa.hibernate.org/
CZJUG http://java.cz/jug
Now
OR
martin.krajci@gmail.com
Thanx for attention
CZJUG http://java.cz/jug