Java Persistence 2.1 Training Course
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
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.
Printed copy of slides
eBook Java Persistence Developer Guide (Author Sebastian Hennebrueder)
Table of Content
- 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
- 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
- Criteria queries and HQL queries
- Where conditions
- Lab – Working with objects
- Connection Pool
- Application connection pools, container connection pools, JNDI
- JDBC settings
- Session and Transaction behaviour
- 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
- Aggregation like sum, average, count, min, max
- Reporting queries
- 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
- 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
- declarative with AOP (Spring, Google Guice) or EJB 3
12 Concurrent Access
- Optimistic locking
- Lab – Optimistic locking
13 Bean Validation
- Annotation based validation
- Custom validator
- Lab – Validation
- 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
- 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