To edit or add content to this Wiki, you can simply create a new account at http://wocommunity.org/account.

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

Feature

EOF

Cayenne

Notes

Open Source

 

X

Still Developed / Maintained

 

X

WebObjects/EOF has been given legacy status by Apple.

Development on any Platform

 

X

WebObjects/EOF may only be developed on Apple hardware.

Eclipse Integration

X

*

Cayenne Eclipse integration is being developed and an alpha version is available.

Good Concurrency Support

 

X

EOF is single threaded and requires explicit locking, preventing concurrent operations.

Support for all common DBs

X

X

 

Primitive Attributes
(int, double, long, etc)

 

X

 

Enum Attributes

X*

X

Enum attributes are supported in EOF via the javaEnum prototype in Wonder.

Relationships with Map or Set collection types

 

X

 

Custom Attribute Types

*

X

The ERAttributeExtension framework in Wonder can provide this support for EOF.

Embeddable relationships
(related objects stored in same table as the source)

*

X

EOF allows mapping relationships to the same table as the parent and using the same entity class.  Cayenne allows embedding objects of a different class as de-normalized relationships in a single column.

Single Table Inheritance

X

X

 

Horizontal Inheritance

X

*

Horizontal inheritance is being developed and targeted for the next release of Cayenne (3.1)

Vertical Inheritance

X

*

Cayenne's vertical inheritance support is not yet complete

Flattened attributes/relationships

X

X

 

Automatic Bi-directional Relationship Management

X*

X

EOF support is optionally provided by Wonder.

Generics support (Java 5)

 

 

Generics support is mostly artificial in both EOF and Cayenne (implemented by casting in entity template).

Support Transient Objects
(objects not in editing context)

X

*

Cayenne supports Transient object manipulation for attributes, but not relationships.

Support for Generic Objects (no custom classes)

X

X

 

Optimistic Locking

X

X

 

Optional Editing Context Synchronization

 

X

EOF automatically synchronizes editing contexts which can hide Optimistic Locking problems.

Key Value Coding

X

 

Cayenne has some utility methods to access bean properties, and support for raw data access like storedValueForKey provides for EOF, but no direct analog to KVC.

Customizable entity templates

X

X

 

Raw fetching (Raw Rows / Data Rows)

X

X*

Cayenne's raw fetching is limited to fetching attributes, not relationships (see here), but other lower level support is available without resorting to raw SQL.

Direct SQL support

X

X

 

Nested Editing Contexts

X

X

 

Editing Context Undo

X

 

 

Remote / Distributed Data Access (Client apps) using API directly

X

X

 

Android Support

 

*

Android support is available with a patch to Cayenne. EOF will run on Android, but the license does not allow it.

Pluggable Cache Implementation

 

X

 

Database Migrations

X

*

Migrations are available in Cayenne with a pending project in the sandbox and an open issue (vote it up!).  CayenneModeler has the ability to inspect schema and migrate it as an one-time Admin function; this could be extended to generate a migration upgrade classes in additional to the initial migration.

EJBQL Query support (defined by JPA spec)

 

X

 

Raw SQL Templating

 

X

Cayenne allows SQL to be written using the velocity template language and stored in the model so it can support multiple database types.

Batch Querying

 

X

Cayenne provides this using QueryChain

Documentation in the model (EO model doc)

X

 

 

Default values defined in the model (for migrations and in entity objects)

X

 

 

Servlet Deployment

X

X

 

JavaMonitor / wotaskd Deployment

X

X

 

Incredible Community and Conferences

X

 

 

...