JPA Training

Workshop Length

4 days

Description

JPA Stands for Java Persistence API, also known as EJB3 Persistence or Java EE Persistence. It is the Java standard for creating object oriented Java database applications. There are now many implementations that support the JPA specification (Hibernate, Kodo, OpenJPA, EclipseLink, TopLink and DataNucleus to name a few).

Smart Soft has been conducting JPA workshops since it was first introduced. And we were teaching JDO, Hibernate and EJB (JPA's precursors) workshops before that. We are JPA experts. In fact, JPA has been our most popular workshop for the past 4 years.

This workshop focuses on the practical aspects of using JPA. Having created dozens of JPA applications ourselves, we know where the common pain points are. In this workshop, we cover the details of the JPA specification (API, query language, mapping, etc.) but we also focus on best practices and common JPA design patterns.

Prerequisites

Basic Java knowledge

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
    • Using XML
    • Using Java
  • 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
    • Logging
    • Debugging Tips
  • Using JPA with Spring
    • JPA Objects in ApplicationObjects
    • Managing lifecycle of JPA objects
    • Transactions

Upcoming Dates

We don't cancel classes due to low enrollment.

Date Price  
08/09/2010 $2,800 Signup
08/16/2010 $2,800 Signup
08/23/2010 $2,800 Signup
08/30/2010 $2,800 Signup
09/06/2010 $2,800 Signup
09/13/2010 $2,800 Signup
09/20/2010 $2,800 Signup
09/27/2010 $2,800 Signup
10/04/2010 $2,800 Signup
10/11/2010 $2,800 Signup
10/18/2010 $2,800 Signup
10/25/2010 $2,800 Signup
11/01/2010 $2,800 Signup
11/08/2010 $2,800 Signup
11/15/2010 $2,800 Signup
11/22/2010 $2,800 Signup
11/29/2010 $2,800 Signup