Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

EclipseLink/Features/JPA

< EclipseLink‎ | Features
Revision as of 21:21, 9 October 2007 by Douglas.clarke.oracle.com (Talk | contribs) (Database Platform)

PAGE UNDER CONSTRUCTION

EclipseLink's Object-Relational Features

Mapping

  • DirectToField Mappings (Basic)
  • Relationship Mappings
    • OneToOne Mapping (includes ManyToOne)
    • OneToMany
    • ManyToMany
    • AggregateObject
    • AggregateCollection
    • Direct Collection
    • Direct Map
  • Common Mapping Features
    • Converter
      • Custom
      • Object-Type
      • Type Conversion

Sequencing

  • Primary Key assignment
    • Native Sequence

Locking

  • Optimistic Locking
  • Pessimistic

Query Framework

  • Query Types
    • Object Read Queries
      • ReadAllQuery
      • ReadObjectQuery
      • ReportQuery
      • DataReadQuery
      • ValueReadQuery
    • Object Write Queries
      • InsertObjectQuery
      • UpdateObjectQuery
      • WriteObjectQuery
      • DeleteObjectQuery
    • Bulk Write Queries
      • UpdateAllQuery
      • DeleteAllQuery

TopLink’s expression framework allows developers to define search criteria, ordering, batch/join reading, selective read fields, etc. using expressions based on the object model instead of coding the relational schema into the application. This not only provides independence between the two models but also simplifies the Java developers work. The query framework in conjunction with the expressions can define almost any query and can work cooperatively with EJB-QL, SQL, & Stored Procedure queries. Some of the key features include:

    • All comparison operators
    • Transparent join definition (inner & outer joins)
    • Pre-defined and custom inline functions (i.e. UPPER)
    • Sub-selects
    • Complex Ordering
    • Aggregate functions (SUM, MIN, MAX, … - ReportQuery)
    • GROUP BY (ReportQuery)
    • Re-usable expression fragments to control joining behavior
    • Definable batch and join reading to any level (reduces N+1 reading)
  • Native Queries
    • SQL
    • Stored Procedure
  • Query By Example
  • Cursored streams and Scrollable cursor

Transactions

The UnitOfWork feature is an object-level transaction to simplify development of INSERT, UPDATE, and DELETE logic.

  • Session Query API
  • Register API to include objects in TX
  • Thread isolated changes to object graph
  • Deferred writing of changes (minimal TX window possible)
  • Minimal change-set calculation
  • SQL Call Ordering determined by referential integrity rules and minimize deadlock through consistent table access.
  • Commit, Commit and Resume
  • Revert instances and all registered objects
  • Cache merge only on successful TX commit
  • PK Assignment for new objects on demand or at commit
  • Merge API for applying client serialized objects
  • Un-register instances to remove from TX
  • Nested & Parallel UnitOfWork support
  • UnitOfWork begin Early Transaction support

Database Platform

EclipseLink's DatabasePlatform encapsulates database specific behavior

  • DatabasePlatform
  • Oracle
    • Object-relational type mappings
    • Native Sequencing (SELECT NEXTVAL FROM DUAL)
    • Stored Procedure
    • Hierarchical Queries
    • Hints
    • Custom LOB Support for Oracle JDBC
    • Oracle Spatial
  • DB2
    • Native SQL Support (BLOB, Date, Timestamp, Time)
    • Custom Operators (UCASE, LCASE, CONCAT)
    • Server Time
    • Ignore no data found/modified exceptions
    • Mainframe JDBC support
  • Sybase
    • Native Sequencing (@@IDENTITY)
    • Native SQL (BLOB, Date, Timestamp, Time)
    • Stored Procedures
    • Server Time
  • SQL Server
    • Native Sequencing (@@IDENTITY)
    • Native SQL (BLOB, Date, Timestamp, Time)
    • Stored Procedures
    • Server Time
  • Informix
    • Native Sequencing ("SELECT DISTINCT(DBINFO('sqlca.sqlerrd1')) FROM systables")
    • Native SQL (Date, Timestamp, Time)
    • Outer Joins

Performance

EclipseLink offers numerous performance tuning capabilities that allow a developer to get the optimal performance and scalability characteristics for a specific application.

  • Object Caching
  • Mapping
    • Indirection (Lazy Loading)
  • Query
    • Batch Reading (optimized SQL generation for data retrieval)
    • Join Reading (optimized SQL generation for data retrieval)
    • Report & Partial Attribute Queries
    • Stored Procedure support
    • In-Memory Querying
  • Transactions
    • Minimal change-sets (UnitOfWork)
    • Batch Writing
      • SQL Concatenation
      • JDBC 2 batch writing
  • JDBC
    • Prepared Statement Caching
    • Parameter Binding (Strings, LOBs, or ALL)
  • Sequence pre-allocation

Back to the top