eclipselink jpa
DESCRIPTION
An overview of the EclipseLink JPATRANSCRIPT
Eclipse JPA
Gordon YorkeEclipseLink Architecture Committee Member,TopLink Core Technical Lead,JPA 2.0 Expert Group [email protected]
What you will learn
• Eclipse Persistence Services Project (EclipseLink) Components
• Focus on EclipseLink JPA JPA 2.0 RI status EclipseLink Extensions
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
• 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
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 …
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 …
Extensions - Locking
• Data Locking policies Optimistic: Numeric, Timestamp, All fields, Selected fields,
Changed field Pessimistic
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
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…
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