eclipselink jpa

10

Click here to load reader

Upload: eduardo-pelegri-llopart

Post on 19-May-2015

6.862 views

Category:

Technology


1 download

DESCRIPTION

An overview of the EclipseLink JPA

TRANSCRIPT

Page 1: EclipseLink JPA

Eclipse JPA

Gordon YorkeEclipseLink Architecture Committee Member,TopLink Core Technical Lead,JPA 2.0 Expert Group [email protected]

Page 2: EclipseLink JPA

What you will learn

• Eclipse Persistence Services Project (EclipseLink) Components

• Focus on EclipseLink JPA JPA 2.0 RI status EclipseLink Extensions

Page 3: EclipseLink JPA

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

Page 4: EclipseLink JPA

• 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

Tidbits

Page 5: EclipseLink JPA

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 …

Page 6: EclipseLink JPA

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 …

Page 7: EclipseLink JPA

Extensions - Locking

• Data Locking policies Optimistic: Numeric, Timestamp, All fields, Selected fields,

Changed field Pessimistic

Page 8: EclipseLink JPA

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

Page 9: EclipseLink JPA

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…

Page 10: EclipseLink JPA

More Information

• www.eclipse.org/eclipselink• Newsgroup: eclipse.technology.eclipselink• Wiki: wiki.eclipse.org/EclipseLink• Mailing Lists:

[email protected] [email protected]

• Blogs Committer Team blog: eclipselink.blogspot.com