Workshop Length
4 days
Description
JPA Stands for Java Persistence API, also known as EJB3 Persistence or J2EE Persistence. It's the new Sun standard for creating object oriented Java database applications. The two most popular implementation today are Kodo and Hibernate.
Prerequisites
Our
Core Java class or equivalent experience.
Pricing
For private, dedicated workshops see
our price page.
For public, open-enrollment workshops, see
the table to the right.
Topics
- Object Relational Mapping Overview
- Object Identity
- Object References
- Collections
- Inheritance
- Semantics Missing From Java
- Query Languages
- O/R Patterns
- Logical Mismatch
- Transparent Persistence
- JPA Basics
- Elements of JPA
- Basic Steps
- O/R Success Factors
- JPA API Overview
- Persistence
- EntityManagerFactory
- EntityManager
- Query
- Setting up the Environment
- Libraries
- Data Source
- JUnit
- Ant
- IDE's
- Configuration
- Create the Entity Classes
- Rule for Persistent Entities
- Recommendations for Persistent Entities
- @Entity Annotation
- @Id Annotation
- Relationships, Joins and Collections
- Simple Composition and Associations
- Entities versus Embedded Objects
- @ManyToOne
- @OneToOne
- @ManyToMany
- Mapping Collections
- Collection Types
- Simple Value Collections
- Entity Collections
- Bidirectional Associations
- Cascading Operations
- Sorting Collections
- Externalize
- Interface and Object Fields
- Identity
- Database Versus Java Identity
- Identity Scope
- Identity Generation
- Compound Keys
- Synthetic Versus Natural Keys
- Nullable ID
- User Assigned
- Generated
- Using Persistent Objects
- Inserting, updating and deleting data
- EntityManager Lifecycle
- Exception Handling
- Traversing Relationships
- Object States
- Transient
- Persistent
- Detached
- EJB Query Language
- Logging SQL
- From Clause
- ORDER BY
- Aliases
- WHERE Clause
- Associations in WHERE Clause
- Select Clause
- Aggregates
- GROUP BY/HAVING
- Joins
- Use Fetch to Reduce Database Access
- Query Interface
- Parameter Queries
- Functions
- Subqueries
- All/Any
- IN
- Bulk Operations
- Patterns and Best Practices
- Scoping JPA Objects
- Entity Contexts
- ThreadLocal Pattern
- Composable Transactions
- EntityManager Decorator
- Code Generation
- Forward Engineering: Schema Generation
- Reverse Engineering: Class Generation
- Meet in the middle
- JPA in Web Applications
- Open EM in View Pattern
- Servlet Filters
- Proper Scoping JPA Objects
- Lifecycle management of JPA Objects
- An Add/Edit JSP Page
- Maintaining Consistent State
- Transactions
- JTA
- Container Managed Transaction
- Using Lifecycle Events
- Validation
- Optimistic Locking
- Versioning Objects
- Datastore versus JPA Transactions
- Declarative Transactions
- Mapping
- @Table
- @Column
- @JoinColumn
- @JoinTable
- Inheritance
- Single Table
- Joined
- Table Per Class
- Mapped Superclass
- Discriminator
- Caching
- EM Cache
- Secondary (L2) Cache
- Distributed Cache
- Transactional Cache
- Class Enhancement
- Runtime Enhancement
- Classloader Enhancement
- Build Time Enhancement
- Using Detached Objects
- When to use detached objects
- Pitfalls
- Detach Triggers
- Architecture Issues
- JPA in a 2 Tier Environment
- JPA in layered architectures
- JPA in web services
- Performance Issues
- Lazy Loading versus Eager Loading
- Fetch Groups
- Caching
- Other tips
- Misc Issues
- Using JPA with Spring
- JPA Objects in ApplicationObjects
- Managing lifecycle of JPA objects
- Transactions
|
Upcoming Dates
| Date |
Price |
|
|
06/16/2008
|
$2,400 |
Signup
|
|
06/23/2008
|
$2,400 |
Signup
|
|
07/07/2008
|
$2,400 |
Signup
|
|
07/14/2008
|
$2,400 |
Signup
|
|
07/28/2008
|
$2,400 |
Signup
|
|
08/04/2008
|
$2,400 |
Signup
|
|
08/11/2008
|
$2,400 |
Signup
|
|
08/18/2008
|
$2,400 |
Signup
|
|
08/25/2008
|
$2,400 |
Signup
|
|
09/01/2008
|
$2,400 |
Signup
|
|
09/08/2008
|
$2,400 |
Signup
|
|
09/15/2008
|
$2,400 |
Signup
|
|
09/22/2008
|
$2,400 |
Signup
|
|
09/29/2008
|
$2,400 |
Signup
|
|
10/06/2008
|
$2,400 |
Signup
|
|
10/13/2008
|
$2,400 |
Signup
|
|