Difference between revisions of "CDO/Hibernate Store"

From Eclipsepedia

< CDO
Jump to: navigation, search
(Documentation)
(Documentation)
Line 15: Line 15:
 
The documentation for the CDO Hibernate Store consists of the following sections.
 
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 '''[[CDO_Hibernate_Store_Quick_Start|quick start]]''' page. In just a few steps you have an up-and-running CDO server with Hibernate and automatic mapping using Teneo.  
+
* '''[[CDO_Hibernate_Store_Quick_Start|quick start]]''': in just a few steps you have an up-and-running CDO server with Hibernate and automatic mapping using Teneo.  
  
The '''[[CDO_Hibernate_Store_Architecture|architecture]]''' document describes how the different components of the store operate together.
+
* '''[[CDO_Hibernate_Store_Architecture|architecture]]''': describes how the different components of the store operate together.
  
In the '''[[CDO_Hibernate_Store_Download_and_Install|download and install]]''' section the required plugins and their download locations are listed. In addition the examples projects used in the tutorials are specified (with their cvs location).
+
* '''[[CDO_Hibernate_Store_Download_and_Install|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).
  
The '''[[CDO_Hibernate_Store_Configuration_and_Setup|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.
+
* '''[[CDO_Hibernate_Store_Configuration_and_Setup|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.
  
The first '''[[CDO_Hibernate_Store_Start_Tutorial|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_Start_Tutorial|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|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.
+
* '''[[CDO_Hibernate_Store_HQL|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.
  
The CDO Hibernate store makes use of Teneo for automatic mapping of ecore models to relational database schemas. The '''[[CDO_Hibernate_Store_Model_Relational_Mapping|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.
+
* '''[[CDO_Hibernate_Store_Model_Relational_Mapping|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.
  
 
If you encounter any issues, don't forget to visit the '''[[CDO_Hibernate_Store_Trouble_Shooting|trouble shooting]]''' page or ask your question on the '''[http://www.eclipse.org/modeling/emf/newsgroup-mailing-list.php EMF]''' newsgroup.
 
If you encounter any issues, don't forget to visit the '''[[CDO_Hibernate_Store_Trouble_Shooting|trouble shooting]]''' page or ask your question on the '''[http://www.eclipse.org/modeling/emf/newsgroup-mailing-list.php EMF]''' newsgroup.

Revision as of 21:26, 20 January 2010

Contents


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.

Documentation

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.

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