diff options
author | Martin Taal | 2012-09-23 11:46:39 +0000 |
---|---|---|
committer | Martin Taal | 2012-09-23 11:46:39 +0000 |
commit | ea40a3166ac2f47c9d208033c66680a739d049ff (patch) | |
tree | 33942367306e9c3e77f615700ddc00cbbbae6a94 /plugins/org.eclipse.emf.cdo.server.hibernate.teneo/src/org/eclipse/emf/cdo/server/hibernate | |
parent | 0bd73694b8754abc6c64c9add00d1297874e6fd1 (diff) | |
download | cdo-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.java | 16 |
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() |