Java Persistence 2.1 Training Course
Description
Possible training language: English, German
The training is a solid introduction to Java Persistence. It explains most features and provides the participant with a good knowledge of Java Persistence concepts. After the training the student is ready to develop Java Persistence based applications, is aware of common pitfalls and has a general knowledge about architecture.
The training covers 3 days and includes a large number of practical labs including a complete prototype web application.
Your trainer is Sebastian Hennebrueder.
How to book?
Contact me for a training in Frankfurt/Germany or an onsite trainings in your office.
Duration 3 days – 18 hours
Price net 1725 EUR, Price incl. VAT 2052.85 EUR
Target Customer
Java developers who have limited or no experience with Java Persistence needing a complete and solid training. Java knowledge and experience with JDBC based application is required.
Provided material
Printed copy of slides
eBook Java Persistence Developer Guide (Author Sebastian Hennebrueder)
Table of Content
Day One
1 Introduction
- Object relational mapping
- Java Persistence 1.0
- What’s new in Java Persistence 2.0 (JSR 317)?
2 Mapping of properties
- Annotation versus XML Mapping
- ID columns
- Property mapping
- Components
- Lab – Mapping of properties
3 Understanding Fundamental Concepts – State of objects
- Database identity versus Java identity
- equals and hashcode
4 Working with Objects
- Tools for Java Persistence development
- Save, update, delete
- Reattaching with merge, lock
- Querying
- Criteria queries and HQL queries
- Where conditions
- Lab – Working with objects
5 Configuration
- Connection Pool
- Application connection pools, container connection pools, JNDI
- JDBC settings
- Session and Transaction behaviour
6 Relations
- Mapping
- List, Set, Map or Array
- 1:1, 1:n, m:n, 1:n:1, recursive relations
- Working with Relations
- Efficiently working with relations – Cascading
- Lab – Working with relations
Day Two
7 Querying
- Aggregation like sum, average, count, min, max
- Sorting
- Reporting queries
- Joins
- Querying of Relations
- Lab – Querying
8 Understanding Fundamental Concepts – Lazy loading
- The lazy initialization problem
- Eager and Lazy loading
- Changing the load behaviour in the mapping
- Using queries to initialize data
- Choosing strategies
- Lab – Lazy Loading
9 Inheritance
- Strategies
- Lab – Inheritance
10 Understanding Fundamental Concepts – Persistence Context
11 Transaction and Exception handling
- Proper exception handling
- Exception handling with AOP, EJB 3
- Exception handling with web frameworks (JSF, Struts 2, Stripes, Tapestry)
- Transaction handling
- programmatically
- declarative with AOP (Spring, Google Guice) or EJB 3
12 Concurrent Access
- Optimistic locking
- Lab – Optimistic locking
Day Three
13 Bean Validation
- Annotation based validation
- Custom validator
- Lab – Validation
14 Architecture
- Integration
- EJB 3 application – JBoss / Glassfish etc
- Web application – Jetty / Tomcat
- DAO – Data Access Objects
- Writing DAO
- Granularity – DAO per class, per use case, per ?
- Persistent Domain Objects
- Encapsulating business logic
- Guaranty consistency
- Session life time
- Session per Transaction
- Open Session In View (traditional)
- Open Session In View 2.0
15 Testing
- Testing tools
- How to test?
- What to test?
16 Writing a prototype application
Practical session where the student completes a full web application applying a number of best practices and design pattern he has learned during the training