Texo/ORM JPA Annotations Details
The Texo ORM generation can be controlled completely through an annotations model. The Texo ORM annotation model is directly based on the [2.0 standard]. The ORM/JPA model annotations make it possible to override/set all ORM 2.0 annotations at model level. You only need to annotate the parts of the model which need extra attention. Texo will automatically add any missing annotations to get to a fully annotated model (while maintaining the manual settings).
Maintaining ORM model annotations
The initial ORM annotations model can be created in the same way as described for code generation, see here. You start with an empty annotation model and create the nodes in the annotations model to add ORM annotations.
You can add ORM Annotations at each level of your model: EPackage, EClass, EAttribute, EReference and EDataType. By right clicking on an ORM Annotation node you can see which ORM specific annotations can be added:
And ORM specific annotations can again have children:
Note: it is possible to specify ORM annotations on an EDataType, these annotations are copied to each EAttribute using that EDataType.
Texo Mapping Decisions
Texo makes the following mapping decisions when generating an orm.xml:
- as a default all access is set at FIELD (this in contrast to the JPA default which is PROPERTY), only interfaces will use the PROPERTY access type.
- join tables are named as: entityname_efeaturename. This in contrast to the JPA default which specifies that a join table should be the concatenation of the names of the 2 tables which are joined. Texo uses a different approach as it provides a more robust naming without collisions.
- Texo will automatically manage which side is the owner in a bi-directional association.
- Texo chooses the entity name (is the same as the EClass name).
- Support the Map type
- Generate more database schema constructs in the orm.xml (column names for example).
- Make the database artifact/entity naming logic configurable