Java Persistence What's New What's (Still) the Same

Java Persistence What's New What's (Still) the Same

Java Persistence What's New What's (Still) The Same Craig L. Russell JAX India 2009 Agenda Objects vs. Relational Alternative Approaches Object-Relational Mapping (ORM) Some Cool ORM Features Java Persistence API (JPA) Java Data Objects (JDO) Where Do We Go From Here? Q & A 2 ©Sun Microsystems, Inc. 2 Licensed under the Apache License, Version 2.0 Presenter's "Baggage" JavaTM Data Objects Specification Lead Apache OpenJPA PMC Chair Java EE Container Managed Persistence Architect 3 ©Sun Microsystems, Inc. 3 Licensed under the Apache License, Version 2.0 Objects vs. Relational ● Classes ● Tables ● Fields ● Columns ● Methods ● Stored Procedures ● References ● Foreign Keys ● Multi-valued types ● Single-valued types Department ID NAME SALARY 128 Harry 12900.09 Employee Project 245 Joe 23929.88 4 ©Sun Microsystems, Inc. 4 Licensed under the Apache License, Version 2.0 Alternative Approaches ● Direct API ● Write SQL, Embed in Statement, Get ResultSet ● SQL Helper Classes ● Write SQL, Put Results into User's Classes ● Data Access Object ● Write SQL, Translate Results to Domain Objects ● Object-Relational Mapping ● Write Mapping, Write Queries in Domain Model ● Automatic Change Detection 5 ©Sun Microsystems, Inc. 5 Licensed under the Apache License, Version 2.0 Object-Relational Mapping ● Class <--> Table ● Property <--> Column ● Identity <--> Primary Key ● Bidirectional-Relationship <--> Foreign Key ● Inheritance <--> Foreign Key == Primary Key ● HashMap <--> Join Table with 3 columns ● Embedded <--> Multiple Columns ● Class <--> Multiple Tables with same Primary Key 6 ©Sun Microsystems, Inc. 6 Licensed under the Apache License, Version 2.0 Some Cool ORM Features ● Auto-increment fields/properties ● Especially useful for primary keys ● Orphan deletion ● Implements containment (composite) pattern ● Generate source from database schema ● When you already have a database ● Surrogate (artificial) primary keys ● Enforces "best practice" automatically 7 ©Sun Microsystems, Inc. 7 Licensed under the Apache License, Version 2.0 Some (More) Cool ORM Features ● Detached objects ● Domain objects are DTOs (data transfer objects) ● Life cycle callbacks ● Aspect-oriented without the pain ● Optimistic locking ● Use version columns for consistency ● Uniquing ● Guarantee one object per unique row 8 ©Sun Microsystems, Inc. 8 Licensed under the Apache License, Version 2.0 ORM "Potential Benefits" ƚ ● Productivity ● Writing Mapping is faster than writing SQL ● Scalability ● Fewer team members need to be SQL experts ● Performance ● ORM can write better SQL than you can ● Quality ● Complex SQL needs extensive testing ƚ Legal made me say this 9 ©Sun Microsystems, Inc. 9 Licensed under the Apache License, Version 2.0 Popular ORM Solutions ● Java Persistence API Implementations ● DataNucleus ● OpenJPA (used in BEA, IBM app servers) ● EclipseLink ● Hibernate ● Java Data Objects Implementations ● DataNucleus ● Kodo (used in BEA app servers) 10 ©Sun Microsystems, Inc. 10 Licensed under the Apache License, Version 2.0 JPA 2.0 Features ● QueryBuilder API ● Collections of Basic Types (e.g. String) ƚ ● Nested/Relationships Embedded Objects ƚ ● Delete Orphans ƚ ● Object Cache Interface ƚ ● Expanded Map Mapping (e.g. Join Table) ƚ ● Derived Identity (e.g. Master Detail) ƚ ƚ Included in JDO 2.2 11 ©Sun Microsystems, Inc. 11 Licensed under the Apache License, Version 2.0 JDO 2.1, 2.2, 2.3 Features ● JDOQL Subqueries ● Dynamic Fetch Groups ● Read-Only Transactions ● Transaction Isolation Level ● Persistence Manager Proxy ● getServerTimeZone() ● getServerDate() ● Enhancer Invocation API 12 ©Sun Microsystems, Inc. 12 Licensed under the Apache License, Version 2.0 Persistence Solutions ƚ ● ORM Java 2,620,000 Google hits ● Java JPA 1,490,000 Google hits ● Java iBATIS 1,100,000 Google hits ● Hadoop 1,310,000 Google hits ● EclipseLink 523,000 Google hits ● Java Hibernate 361,000 Google hits ● Java JDO 112,000 Google hits ƚ take with a grain of salt 13 ©Sun Microsystems, Inc. 13 Licensed under the Apache License, Version 2.0 Where do we go (from here)? ● Object to Relational Impedance Mismatch ● Web Framework Object Persistence ● Relational vs. Object Database ● ORM Standards ● Cloud Computing, Massive Scale Data 14 ©Sun Microsystems, Inc. 14 Licensed under the Apache License, Version 2.0 Questions? Answers! Craig L. Russell OpenJPA PMC Chair ASF.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    15 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us