Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Influence DB Store mapping by using annotations
This feature is implemented in current CVS Head for the CDO 3.0 release.
When using the DB Store the mapping of the EMF/CDO model to the database backend can be influenced by several annotations. Just add the below EAnnotation's to the appropriate classes/features.
Contents
Class Annotations
The following annotations are meaningful in the context of EClasses.
<eStructuralFeatures xsi:type="ecore:EAttribute" ...> <eAnnotations source="http://www.eclipse.org/CDO/DBStore"> ... </eAnnotations> </eStructuralFeatures>
TableName
A class annotation for naming it's table.
<eAnnotations source="http://www.eclipse.org/CDO/DBStore"> <details key="tableName" value="MY_TABLE_NAME"/> </eAnnotations>
TableMapping
Exclude a class from persistence.
Sometimes you may have classes in your model that are not intended to be persisted. Without the below annotation CDO would create an empty table also for those classes, but with that annotation those classes are simply ignored.
<eAnnotations source="http://www.eclipse.org/CDO/DBStore"> <details key="tableMapping" value="NONE"/> </eAnnotations>
Feature Annotations
The following annotations are meaningful in the context of EStructuralFeatures
ColumnLength
The length of the data.
Can be used for example to provide the length for a VARCHAR that was mapped from an EString feature.
<eAnnotations source="http://www.eclipse.org/CDO/DBStore"> <details key="columnLength" value="256"/> </eAnnotations>
ColumnName
The feature annotation for naming it's column.
<eAnnotations source="http://www.eclipse.org/CDO/DBStore"> <details key="columnName" value="MY_COLUMN_NAME"/> </eAnnotations>
ColumnType
The type to be used for storing the feature in the database.
This can be used for example to store a feature of type EString in a Clob column.
<eAnnotations source="http://www.eclipse.org/CDO/DBStore"> <details key="columnType" value="CLOB"/> </eAnnotations>