Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Taal2012-09-23 11:46:39 +0000
committerMartin Taal2012-09-23 11:46:39 +0000
commitea40a3166ac2f47c9d208033c66680a739d049ff (patch)
tree33942367306e9c3e77f615700ddc00cbbbae6a94 /plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate
parent0bd73694b8754abc6c64c9add00d1297874e6fd1 (diff)
downloadcdo-ea40a3166ac2f47c9d208033c66680a739d049ff.tar.gz
cdo-ea40a3166ac2f47c9d208033c66680a739d049ff.tar.xz
cdo-ea40a3166ac2f47c9d208033c66680a739d049ff.zip
Fixes issue [390151] - [Hibernate] Prevent annotation and modelelement eclasses from ETypes CDO EPackage to be mapped
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate')
-rw-r--r--plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProvider.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProvider.java b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProvider.java
index 041c120afb..84d5c23526 100644
--- a/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProvider.java
+++ b/plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate/internal/teneo/TeneoHibernateMappingProvider.java
@@ -138,6 +138,8 @@ public class TeneoHibernateMappingProvider extends HibernateMappingProvider
}
// add some annotations to the CDO model so that the mapping gets generated correctly
+ addTransientAnnotationToEClass(EtypesPackage.eINSTANCE.getModelElement());
+ addTransientAnnotationToEClass(EtypesPackage.eINSTANCE.getAnnotation());
addTypeAnnotationToEDataType(EtypesPackage.eINSTANCE.getBlob(), CDOBlobUserType.class.getName());
addTypeAnnotationToEDataType(EtypesPackage.eINSTANCE.getClob(), CDOClobUserType.class.getName());
@@ -188,6 +190,20 @@ public class TeneoHibernateMappingProvider extends HibernateMappingProvider
eDataType.getEAnnotations().add(eAnnotation);
}
+ private void addTransientAnnotationToEClass(EClass eClass)
+ {
+ if (eClass.getEAnnotation(Constants.ANNOTATION_SOURCE_TENEO_JPA) != null)
+ {
+ return;
+ }
+
+ final EAnnotation eAnnotation = EcoreFactory.eINSTANCE.createEAnnotation();
+ eAnnotation.setSource(Constants.ANNOTATION_SOURCE_TENEO_JPA);
+ final String transientAnnotation = "@Transient";
+ eAnnotation.getDetails().put("value", transientAnnotation);
+ eClass.getEAnnotations().add(eAnnotation);
+ }
+
// see the CDOEntityMapper, there an explicit unique-key is added to
// a column also
private void addUniqueConstraintAnnotation()

Back to the top