Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

EclipseLink JPA

7,565 views

Published on

An overview of the EclipseLink JPA

Published in: Technology
  • Be the first to comment

EclipseLink JPA

  1. 1. Eclipse JPA Gordon Yorke EclipseLink Architecture Committee Member, TopLink Core Technical Lead, JPA 2.0 Expert Group Member gordon.yorke@oracle.com
  2. 2. What you will learn • Eclipse Persistence Services Project (EclipseLink)  Components • Focus on EclipseLink JPA  JPA 2.0 RI status  EclipseLink Extensions
  3. 3. Eclipse Persistence Services • Eclipse runtime project  Nicknamed “EclipseLink”  Latest version 1.0.2 • Comprehensive  EclipseLink JPA: Object-Relational  EclipseLink MOXy: Object-XML  EclipseLink SDO: Service Data Objects  EclipseLink DBWS: Database Web Services  EclipseLink EIS: Non-Relational using JCA
  4. 4. Tidbits • First comprehensive open source persistence solution • Based upon product with 12 years of commercial usage • Same code base that was used to create TopLink Essentials • Highly optimizable through precise configurations • Great performance
  5. 5. EclipseLink JPA • JPA 1.0 compliant implementation • JPA 2.0 in development for RI • Keep up to date at:  http://wiki.eclipse.org/EclipseLink/Development/JPA_2.0 • Any JDBC/SQL compliant database  Database specific support for Oracle, MySQL, Derby, SQLServer, PostgreSQL et al. • Extensible and pluggable • plus many valuable advanced features  Caching, locking …
  6. 6. EclipseLink JPA Extensions • Weaving  Lazy loading @Basic, @OneToOne, @ManyToOne  Performance options like change tracking • Mapping  @PrivateOwned, @JoinFetch  @Converter, @TypeConverter, @ObjectTypeConverter • @NamedStoredProcedureQuery  IN/OUT/INOUT parameters, multiple cursor results • Extensions supported through annotations and XML • Query hints  refreshing, locking, parameter binding …
  7. 7. Extensions - Locking • Data Locking policies  Optimistic: Numeric, Timestamp, All fields, Selected fields, Changed field  Pessimistic
  8. 8. Extensions - Entity Caching • Entity caching  L2 shared across transactions/users  Coordination in a clustered deployment  Can support 3rd party distributed cache. • Application specific configuration  Caching: per Entity or per Persistence Unit  eclipselink.cache.shared(default|<entity>)  Cache Type and Size: Weak, Soft-Weak, Full  eclipselink.cache.type(default|<entity>)  Expiration/Invalidation  Time to live, Time of day, API  Coordination (cluster-messaging)  Messaging: JMS, RMI, RMI-IIOP, …  Mode: SYNC, SYNC+NEW, INVALIDATE, NONE
  9. 9. Performance and Tuning • Highly configurable and tunable  Principle: minimize and optimize database calls  Enable application specific tuning • Flexibility allows efficient business models and relational schemas to be used • Leverages underlying performance tuning features  Java, JDBC and the underlying database technology  Batch Reading, Batch Writing, Joined Reading, etc…
  10. 10. More Information • www.eclipse.org/eclipselink • Newsgroup: eclipse.technology.eclipselink • Wiki: wiki.eclipse.org/EclipseLink • Mailing Lists:  eclipselink-dev@eclipse.org  eclipselink-users@eclipse.org • Blogs  Committer Team blog: eclipselink.blogspot.com

×