| Java Training   Overview 
				
This course offers a comprehensive and detail-oriented treatment of Hibernate® and the Java Persistence API (JPA) for developers interested in implementing persistence tiers for enterprise applications. We cover JPA basics including simple object/relational concepts and annotations, persistence contexts and entity managers, and configuration via persistence.xml. We get a good grounding in the Java Persistence Query Language (JPQL), working with a JPQL console. The course then moves into advanced mapping techniques, the Criteria API, lifecycle hooks, validation, locking, and caching. Students will complete the course with a firm understanding of JPA architecture and plenty of hands-on experience.
 This version of the course supports JPA 2.1 with Hibernate 5.0. EclipseLink 2.6 is deployed with the course software as well; switching providers is just a matter of moving a few lines in and out of XML comments in the relevant persistence.xml file, and we encourage instructors to demonstrate both providers, to illustrate portability and for comparison of some finer points.
 
 The course also supports either the Derby or Oracle RDBMS. Derby is bundled with the course software and is pre-configured; a script is included to change over to Oracle configurations for all exercises and schema-creation scripts are available for both.
 
 Java Training   Prerequisites
 Java Training  Learning ObjectivesA strong Java programming background is essential for this course
Knowledge of relational database concepts and SQL is recommendedPrior experience with JDBC will be a plus but is not required
 
 After completing this course, the student should be able to:
		 
		Java Training   Course durationUnderstand the value of object/relational mapping and JPA's role as a standard for ORM implementations.Develop JPA entities using JPA annotations to align the Java classes, properties, and types to relational tables, columns, and types.Create entity managers and instantiate persistence contexts to perform create/retrieve/update/delete (CRUD) operations.Implement entity relationships of all cardinalities, including unidirectional and bidirectional relationships.Map composite primary keys, inheritance relationships, eager/lazy fetching, and cascading operations.Use JPQL to write object-oriented queries, and process query results.Use the Criteria API to define queries programmatically, and take advantage of type safety using the Metamodel API.Build reusable façades that encapsulate simpler and more complex persistence operations.Implement persistence lifecycle event handlers.Define JSR-303 validation constraints on JPA entities and see them enforced by the JPA provider.Manage concurrent opertaions via optimistic or pessimistic locking strategies.Understand the actions of the local and shared entity caches, and use them appropriately while avoiding over-caching pitfalls. 
 5 Days
 
 Java Training   Course outline
 
 Chapter 1. Introduction to JPA
 
Chapter 2. Single-Table MappingObject/Relational MappingMismatches Between Relational and Object ModelsThe Java Persistence APIHibernateArchitectureEntity MetadataThe Entity Manager 
Chapter 3. Mapping AssociationsAnnotationsJavaBean StandardsProperty, Field, and Mixed AccessTable and Column MappingPrimary Keys and Key GenerationType MappingsTemporal and Enumerated TypesEmbedded TypesConverters 
Chapter 4. Entity Managers@Embeddable TypesEntity Relationships@ManyToOne Relationships@OneToOne Relationships@OneToMany Relationships@ManyToMany RelationshipsEager and Lazy Loading 
Chapter 5. JPQLPutting Entities to Workpersistence.xmlEntity State and TransitionsManaging TransactionsPersistence OperationsCreating QueriesNamed QueriesQuery ParametersNative QueriesStored-Procedure Queries 
Chapter 6. Persistence ComponentsThe Java Persistence Query LanguageHQL and JPQLQuery StructurePath ExpressionsFilteringScalar FunctionsUsing Native FunctionsOperators and Precedencebetween, like, inis null, is emptyOrderingAliasesGroupingAggregate FunctionsJoinsFetch JoinsConstructorsUpdates and Deletes 
Chapter 7. Advanced MappingsEncapsulating Persistence LogicDesign ConsiderationsTestabilityTransaction ControlException HandlingGeneric Types 
Chapter 8. The Criteria APIInheritance StrategiesSingle-Table StrategyJoined-Table StrategyTable-Per-Concrete-Class StrategyQuerying Over Inheritance RelationshipsType Identification with .classSecondary TablesComposite Primary Keys@IdClass and @EmbeddedIdDerived Identifiers@ElementCollectionDefault Values@Version FieldsCascading and Orphan RemovalDetachment and MergingHibernate ExtensionsThe @Type Annotation 
Chapter 9. LifecycleHistory of the Criteria APICriteria Query StructureThe MetaModel API and Query Type SafetyTuplesJoinsPredicatesBuilding ExpressionsOrderingGroupingEncapsulating Persistence LogicFaçadesRange QueriesUpdates and Deletes 
Chapter 10. ValidationLifecycle EventsMethod AnnotationsEntity Listeners 
Chapter 11. LockingJSR-303 ValidationConstraint AnnotationsValidation ModesValidation GroupsHandling Validation Exceptions 
Chapter 12. CachingConcurrencyUpdates to the Same and Related EntitiesPessimistic LockingLock TypesWho Blocks WhomDeadlocking and TimeoutsOptimistic LockingThe @Version AnnotationOptimistic Read and Write LockingError HandlingCombining Locking Strategies 
System RequirementsCachingPersistence Context as Transactional CacheShared (2nd-Level) CachePros and ConsCache ConfigurationEvictionEffects of Locking on Caching 
 Minimum Hardware Requirements
 Hardware – recommendedCore i5, 1.8 GHz, 4 gig RAM, 1 gig disk space.
 
 
			    
		              
		    Operating systemCore i5, 2.5 GHz GHz, 8 gig RAM, 1 gig disk space. Network and SecurityTested on Windows 7/8, Mac OS 10.8.5
 
 Limited privileges required
 
 Software
 
 All free downloadable tools, with an option to use certain commercial products.
 
 
 |