Jump to: navigation, search

CDO/Hibernate Store

Revision as of 20:57, 20 January 2010 by Mtaal.elver.org (Talk | contribs) (Documentation)

The CDO Hibernate store is a CDO store implemented with Teneo and Hibernate. This combination of tools gives the user/developer the following advantages:

  • Database support: Hibernate provides superior runtime Object Relational Mapping to many different relational databases. We test with mysql and hsqldb but there no known obstacles for using CDO on other databases supported by Hibernate.
  • HQL: the CDO Hibernate store makes it possible to execute HQL queries on the client. The complete HQL syntax is supported (incl. joins, aggregations, functions, etc.).
  • Automatic Model-Relational Mapping: Teneo takes care of automatic mapping of your model to a relation database schema. The relational database schema explicitly implements the domain model. The automatic mapping can be manually overridden using JPA annotations in the model or in a separate XML file. Basically all JPA annotations (and several Hibernate extensions) are supported.

The CDO Hibernate store is very much focused on creating a readable, sensible, practical and performant relational database schema. The store is especially suited for data oriented business administrative (ERP-like) applications with a RCP interface.


The documentation for the CDO Hibernate Store consists of the following sections.

For those of you who want to get it all up and running quickly, try the quick start page. In just a few steps you have an up-and-running CDO server with Hibernate and automatic mapping using Teneo.

The architecture document describes how the different components of the store operate together.

In the download and install section the required plugins and their download locations are listed.

The configuration document discusses the setup and configuration of the CDO Hibernate store (database, launch configuration, model, etc.). The description is supported by an example Eclipse project which is available in cvs.

The first tutorial gives a quick intro in how to connect from a client to the CDO Hibernate datastore. This tutorial illustrates that for a standard usage there is no difference in using a CDO Hibernate store compared to other stores. A downloadable Example Eclipse project is used to give the reader a good start. The examples use junit testcases on the client to facilitate easy testing and debugging.

A distinguishing feature of the CDO Hibernate store is the support for HQL queries. The CDO Hibernate Store HQL page contains several examples of queries, ranging from very simple to queries with functions and array results. The example queries can be run directly using a provided Eclipse project.

The CDO Hibernate store makes use of Teneo for automatic mapping of ecore models to relational database schemas. The model relational mapping page describes how the mapping can be extended and overridden using JPA annotations in the model. The same example Eclipse project as in previous steps is used to illustrate the description.

If you encounter any issues, don't forget to visit the trouble shooting page or ask your question on the EMF newsgroup.

Current status

Currently the CDO Hibernate datastore successfully passes 540 out of a total of about 580 testcases. The 40 remaining testcases are related to functions and features not (yet) supported by the CDO Hibernate store.

The CDO Hibernate Store currently does not support the following CDO features:

  • auditing and revisions: this topic is being researched. Support for auditing as it is currently implemented in CDO implies that there are no foreign key constraints in the database. This has to be matched with the focus of the CDO Hibernate store on supporting more traditional ERP/Business Administration applications.
  • XATransactions: xatransactions are not tested well and not all test cases pass currently

Wikis: CDO | Net4j | EMF | Eclipse