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.
Difference between revisions of "CDO/DB Store"
< CDO
(New page: ---- ''We are still working on the details, but once we have completed the wiki we'll remove this text'' ---- The CDO DB store is an implementation to the CDO Store that allows storing of...) |
(→Features) |
||
(12 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | The CDO DB store is an implementation of the CDO IStore that allows to store models and meta models in relational databases. It does not use 3rd party components other than database vendor-specific JDBC drivers. The DB store is a proprietary O/R mapper. | |
− | + | ||
− | + | ||
− | + | == Features == | |
− | + | *Supports all optional features of the [[#CDO_Server|CDO Server]]. | |
− | + | *Pluggable SQL dialect adapters. Includes support for [[Net4j/DB/Derby|Derby]], [[Net4j/DB/H2|H2]], [[Net4j/DB/HSQLDB|HSQLDB]], [[Net4j/DB/MySQL|MySQL]], [[Net4j/DB/PostgreSQL|PostgreSQL]] and [[Net4j/DB/Oracle|Oracle]] . | |
+ | *Pluggable mapping strategies. Includes horizontal mapping strategy (one table per concrete class, no joins). | ||
+ | **See [http://download.eclipse.org/modeling/emf/cdo/drops/R20140610-0212/help/org.eclipse.emf.cdo.doc/html/reference/MappingStrategies.html DBStore Mapping Strategies] | ||
+ | *Various mapping options by using EAnnotations on model elements (see more in section [[#Annotations|Annotations]]). | ||
− | == | + | == Configuration == |
− | * Configuring the DBStore: see | + | *Configuring the DBStore: see [[CDO/Server Configuration Reference#Element_store]].<br> |
− | == | + | == Annotations == |
− | + | You can define custom mappings on your model by using EAnnotations for DBStore: [http://git.eclipse.org/c/cdo/cdo.git/tree/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBAnnotation.java DBAnnotation.java] | |
− | + | In order to optimize the schema on the database, it is recommended that you define the column length, specially when using the data type String. | |
− | + | Example: | |
− | + | <pre> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> | |
− | + | <eAnnotations source="http://www.eclipse.org/CDO/DBStore"> | |
− | + | <details key="columnType" value="VARCHAR"/> | |
+ | <details key="columnLength" value="255"/> | ||
+ | </eAnnotations> | ||
+ | </eStructuralFeatures> | ||
+ | </pre> | ||
+ | <br> | ||
− | + | ---- | |
− | + | ||
− | + | ||
− | |||
− | |||
− | |||
Wikis: [[CDO]] | [[Net4j]] | [[EMF]] | [[Eclipse]] | Wikis: [[CDO]] | [[Net4j]] | [[EMF]] | [[Eclipse]] |
Latest revision as of 10:50, 26 May 2015
The CDO DB store is an implementation of the CDO IStore that allows to store models and meta models in relational databases. It does not use 3rd party components other than database vendor-specific JDBC drivers. The DB store is a proprietary O/R mapper.
Features
- Supports all optional features of the CDO Server.
- Pluggable SQL dialect adapters. Includes support for Derby, H2, HSQLDB, MySQL, PostgreSQL and Oracle .
- Pluggable mapping strategies. Includes horizontal mapping strategy (one table per concrete class, no joins).
- Various mapping options by using EAnnotations on model elements (see more in section Annotations).
Configuration
- Configuring the DBStore: see CDO/Server Configuration Reference#Element_store.
Annotations
You can define custom mappings on your model by using EAnnotations for DBStore: DBAnnotation.java
In order to optimize the schema on the database, it is recommended that you define the column length, specially when using the data type String.
Example:
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"> <eAnnotations source="http://www.eclipse.org/CDO/DBStore"> <details key="columnType" value="VARCHAR"/> <details key="columnLength" value="255"/> </eAnnotations> </eStructuralFeatures>