Course Content
Introduction to JPA
- Why JPA?
- Configuring Hibernate as persistence Provider
- Configuring Persistence.xml
- EntityManagerFactory
- EntityManager
- EntityTransaction
- @Entity
- @Id
- @IdClass
- @EmbeddedId
- @Column
- @GeneratedValue
- @Embeddable
- @EmbeddedValue
- @ElementCollection
- @OnetoMany
- @ManytoOne
- @Onetoone
- @ManytoMany
- Using Mappedby
- @Table
- @SecondaryTable
- @JoinColumn
- @PrimaryKeyJoinColumn
- @Lob
- @Temporal
- @JoinTable
- @Inheritance
- @DiscriminatorValue
- @DiscriminatorColumn
Configuring association in hibernate
using bag and idbag
Optional associations in Hibernate and
JPA
- Life cycle of an entity in JPA
- New state
- Managed state
- Unmanaged state
EntityManager API methods
Hibernate Caching
- First level cache
- Second level cache
- Transaction scope cache
- Process scope cache
- Cluster scope cache
- Concurrency strategies
- EHCache provider
- Cache Regions
- Caching query results
- Ehcache.xml
- Configuring cache usage strategy
- Cache modes
- Caching associations
- Caching Collections
Transactions
- Programmatic transaction using org.hibernate.Transaction interface
- JTA transactions using javax.transaction.UserTransaction
- Contextual sessions
- org.hibernate.context.CurrentSessionContext
- hibernate.transaction.factory_class
- hibernate.transaction.manager_lookup_class
- hibernate.connection.datasource
- hibernate.transaction.flush_before_completion
- hibernate.transaction.auto_close_session
- hibernate.session_factory_name
- hibernate.jndi.class
- hibernate.jndi.url
- hibernate.connection.isolation
- managed versioning using "version" or "timestamp“
- Using optimistic-lock
- Pessimistic Locking
Transitive Persistence
- Using cascading options
- Using Stateless session
Using filters
- Enabling filters
- Filtering Entities
- Filtering collections
HQL
- Query API
- Pagination using query.setFirstResult() and query .setMaxResults()
- Using Named Parameters
- Using Positional parameters
- Setting query hints
- Scrollable Results
- Using Named Queries
- Polymorphic Queries
- Restrictions
- Expressions with collections
- HQL functions
- Order by
- Projections
- HQL join options
- Dynamic fetching with join
- Reporting Queries
- Grouping
- Dynamic instantiation
- Using Subselects
Criteria API
- Criterion
- Using Restrictions
- Getting list
- Getting unique result
- Projections
- Adding order
- Grouing projections
- Detached Criteria
- Sub criterias