- 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.
- quick start: in just a few steps you have an up-and-running CDO server with Hibernate and automatic mapping using Teneo.
- architecture: describes how the different components of the store operate together.
- download and install: lists the required plugins and their download locations. In addition the examples projects used in the tutorials are specified (with their cvs location).
- configuration: 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.
- 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.
- CDO Hibernate Store HQL page: several examples of HQL queries, ranging from very simple to queries with functions and array results. The example queries can be run directly using a provided Eclipse project.
- model relational mapping page describes how standard 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.
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