| Course Description | |
| This course teaches students the most popular object-relational mapping framework for Java environments. Object relational mapping in large enterprise applications is difficult. The task is so difficult that the problem of storing and retrieving objects to a relational database has its own name – impedance mismatch. In this class, students learn object-relational mapping concepts and the various issues and options available in Java to address object persistence. With these fundamentals, the course then explores the basics of Hibernate object persistence and configuration. It also digs into the details of Hibernate mapping, queries, transactions, and concurrency. After taking this class, developers will be able to build faster, more flexible and easier to maintain application persistence layers and overcome impedance mismatch with the Hibernate framework. Course Length: 4 Days Course Tuition: $1390 (US) |
|
| Prerequisites | |
| A good understanding of the Java programming language is required. A basic understanding of relational databases and SQL is very helpful. | |
| Course Outline |
|
• Object Persistence Persistence Object Persistence Object/Relational Paradigms Impedance Mismatch Object Relational Mapping ()ORM) Persistent Framework Hibernate Java ORM/Persistent Frameworks • Hibernate Architecture Hibernate Architecture and PI Hibernate Installation/Setup Configuration Configuration Properties Mapping Files • Persistent Classes Persistent Classes POJOs JavaBeans Basic Mapping Class to Table Mappings Property Mapping Identifiers Generators Natural Keys Identifier Exposure Quoting SQL Tables and Columns • Working with Persistent Objects Entity Lifecycle Transient Stat Persistent State Persistent Object Updates and Automatic Dirty Checking Detached State Deleted Object Identifiers Revisited Merge • Components Domain Model Entities and Values Components • Associations Many-to-one Bidirectional Many-to-one Other Collections Many-to-one List Many-to-one Map Many-to-one Bag Many-to-one Array • More Associations One-to-one Bidirectional One-to-one Many-to-many Bidirectional Many-to-many Many-to-many Identifier Bag • Value Type Collections Collections of Value Types Collections of Components Sorting Collections • Inheritance Inheritance Mapping Strategies Table per concrete class Table per subclass Table per hierarchy Inheritance Mapping Pros/Cons Polymorphism Table per concrete class with unions Choosing an Inheritance Strategy |
• Transitive Persistence Transitive Persistence Lazy Loading Proxies Eager Loading What’s a Proxy? Detached Objects and Proxies Polymorphic Associations Revisited • Custom Mapping Custom Mapping Types UserType Enumerations • HQL Hibernate Object Fetching Options Hibernate Query HQL HQL Parameters Named Queries Native SQL • Criteria Hibernate Criteria Restrictions Query By Example Scrolling Pagination Query Hints Query Option Pros/Cons • Transactions and Concurrency The Java Transaction Hibernate Transaction Configuration Hibernate Transaction API Concurrency Isolation Levels Optimistic Locking Versioning Optimistic Locking without Versioning Pessimistic Locking • Appendix A: Fetching Strategies N + 1 Selects Fetching Strategies Join Fetching Subselect Fetching Batch Fetching Queries and Fetching Strategies Cartesian Product Problem • Appendix B: Cache The Promise of Cache Hibernate Caching Architecture First Level Cache Second Level Cache Cache Concurrency Configuring Second Level Cache Cache Regions Eviction • Appendix C: Annotations Metadata Annotations Pros/Cons Configuring Hibernate Annotations EJB3/JPA Annotations Entity Annotations Embedded Object (Component) Annotations Inheritance Annotations One-to-one Association Annotations Many-to-one Association Annotations Many-to-many Association Annotation Query Annotations Hibernate Annotations Contact us for course schedules or more information. |


