| Home » Modeling » EMF "Technology" (Ecore Tools, EMFatic, etc)  » Duplicate properties appearing in subclass.
 Goto Forum:| 
| Duplicate properties appearing in subclass. [message #76017] | Tue, 20 March 2007 08:25  |  | 
| Eclipse User  |  |  |  |  | Hi, I am having an issue whereby a subclass in my Teneo generated hibernate mapping appears to be
 duplicating the properties of a superclass. When attempting to initialise the database with the
 mapping it throws an error :
 
 Exception in thread "main" org.hibernate.MappingException: Repeated column in mapping for entity:
 kf.CodedXSMeasure column: xsattachdataset (should be mapped with insert="false" update="false")
 at  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:652)
 at  org.hibernate.mapping.PersistentClass.checkPropertyColumnDup lication(PersistentClass.java:674)
 at  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:696)
 
 The ecore generated from my model appears to be correct in that there is no duplication, it only
 appears after generating the hibernate mapping. The classes are UncodedMeasure and CodedMeasure.
 UncodedMeasure is generated correctly, but CodedMeasure is not.
 
 My ecore looks like this:
 
 <eClassifiers xsi:type="ecore:EClass" name="UncodedMeasure" eSuperTypes="#//Measure
 base.ecore#//Codable"/>
 
 <eClassifiers xsi:type="ecore:EClass" name="CodedMeasure" eSuperTypes="#//Measure
 base.ecore#//Codable"/>
 
 But my generated hibernate mapping comes out as:
 
 <subclass entity-name="UncodedMeasure" abstract="false" lazy="false" extends="Measure"
 discriminator-value="UncodedMeasure">
 <meta attribute="eclassName">UncodedMeasure</meta>
 <meta attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 </subclass>
 
 <subclass entity-name="CodedMeasure" abstract="false" lazy="false" extends="Measure"
 discriminator-value="CodedMeasure">
 <meta attribute="eclassName">CodedMeasure</meta>
 <meta attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 <property name="xsAttachDataset" lazy="false" insert="true" update="true" not-null="false"
 unique="false" type="java.lang.Boolean">
 <column not-null="false" unique="false" name="`xsattachdataset`"/>
 </property>
 <property name="xsAttachGroup" lazy="false" insert="true" update="true" not-null="false"
 unique="false" type="java.lang.Boolean">
 <column not-null="false" unique="false" name="`xsattachgroup`"/>
 </property>
 <property name="xsAttachSection" lazy="false" insert="true" update="true" not-null="false"
 unique="false" type="java.lang.Boolean">
 <column not-null="false" unique="false" name="`xsattachsection`"/>
 </property>
 <property name="xsAttachObservation" lazy="false" insert="true" update="true" not-null="false"
 unique="false" type="java.lang.Boolean">
 <column not-null="false" unique="false" name="`xsattachobservation`"/>
 </property>
 <property name="timeFormat" lazy="false" insert="true" update="true" not-null="false"
 unique="false" type="java.lang.Boolean">
 <column not-null="false" unique="false" name="`timeformat`"/>
 </property>
 <many-to-one name="CodeList" entity-name="ItemScheme"
 cascade="merge,persist,save-update,lock,refresh" lazy="false" insert="true" update="true"
 not-null="false">
 <column not-null="false" unique="false" name="`itemscheme_codelist_urn`"/>
 </many-to-one>
 </subclass>
 
 
 The properties which are mapped under CodedMeasure should not be there as they form part of a class
 further up the heirarchy and there is nothing in the ecore to indicate that the two classes should
 be mapped differently. They do normally have some other differentiating features but I have stripped
 them out to highlight the problem.
 
 regards
 
 Duncan
 |  |  |  |  | 
| Re: Duplicate properties appearing in subclass. [message #76049 is a reply to message #76017] | Tue, 20 March 2007 08:39   |  | 
| Eclipse User  |  |  |  |  | Hi Duncan, Can you send me the complete ecore?
 
 gr. Martin
 
 Duncan ALexander wrote:
 > Hi,
 >     I am having an issue whereby a subclass in my Teneo generated
 > hibernate mapping appears to be duplicating the properties of a
 > superclass. When attempting to initialise the database with the mapping
 > it throws an error :
 >
 > Exception in thread "main" org.hibernate.MappingException: Repeated
 > column in mapping for entity: kf.CodedXSMeasure column: xsattachdataset
 > (should be mapped with insert="false" update="false")
 >     at
 >  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:652)
 >
 >     at
 >  org.hibernate.mapping.PersistentClass.checkPropertyColumnDup lication(PersistentClass.java:674)
 >
 >     at
 >  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:696)
 >
 >
 > The ecore generated from my model appears to be correct in that there is
 > no duplication, it only appears after generating the hibernate mapping.
 > The classes are UncodedMeasure and CodedMeasure. UncodedMeasure is
 > generated correctly, but CodedMeasure is not.
 >
 > My ecore looks like this:
 >
 > <eClassifiers xsi:type="ecore:EClass" name="UncodedMeasure"
 > eSuperTypes="#//Measure base.ecore#//Codable"/>
 >
 > <eClassifiers xsi:type="ecore:EClass" name="CodedMeasure"
 > eSuperTypes="#//Measure base.ecore#//Codable"/>
 >
 > But my generated hibernate mapping comes out as:
 >
 > <subclass entity-name="UncodedMeasure" abstract="false" lazy="false"
 > extends="Measure" discriminator-value="UncodedMeasure">
 >         <meta attribute="eclassName">UncodedMeasure</meta>
 >         <meta
 > attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 >
 >     </subclass>
 >
 > <subclass entity-name="CodedMeasure" abstract="false" lazy="false"
 > extends="Measure" discriminator-value="CodedMeasure">
 >         <meta attribute="eclassName">CodedMeasure</meta>
 >         <meta
 > attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 >
 >         <property name="xsAttachDataset" lazy="false" insert="true"
 > update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >             <column not-null="false" unique="false"
 > name="`xsattachdataset`"/>
 >         </property>
 >         <property name="xsAttachGroup" lazy="false" insert="true"
 > update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >             <column not-null="false" unique="false"
 > name="`xsattachgroup`"/>
 >         </property>
 >         <property name="xsAttachSection" lazy="false" insert="true"
 > update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >             <column not-null="false" unique="false"
 > name="`xsattachsection`"/>
 >         </property>
 >         <property name="xsAttachObservation" lazy="false" insert="true"
 > update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >             <column not-null="false" unique="false"
 > name="`xsattachobservation`"/>
 >         </property>
 >         <property name="timeFormat" lazy="false" insert="true"
 > update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >             <column not-null="false" unique="false" name="`timeformat`"/>
 >         </property>
 >         <many-to-one name="CodeList" entity-name="ItemScheme"
 > cascade="merge,persist,save-update,lock,refresh" lazy="false"
 > insert="true" update="true" not-null="false">
 >             <column not-null="false" unique="false"
 > name="`itemscheme_codelist_urn`"/>
 >         </many-to-one>
 >     </subclass>
 >
 >
 > The properties which are mapped under CodedMeasure should not be there
 > as they form part of a class further up the heirarchy and there is
 > nothing in the ecore to indicate that the two classes should be mapped
 > differently. They do normally have some other differentiating features
 > but I have stripped them out to highlight the problem.
 >
 > regards
 >
 > Duncan
 
 
 --
 
 With Regards, Martin Taal
 
 Springsite/Elver.org
 Office: Hardwareweg 4, 3821 BV Amersfoort
 Postal: Nassaulaan 7, 3941 EC Doorn
 The Netherlands
 Tel: +31 (0)84 420 2397
 Fax: +31 (0)84 225 9307
 Mail: mtaal@springsite.com - mtaal@elver.org
 Web: www.springsite.com - www.elver.org
 |  |  |  |  | 
| Re: Duplicate properties appearing in subclass. [message #76066 is a reply to message #76049] | Tue, 20 March 2007 10:49   |  | 
| Eclipse User  |  |  |  |  | Martin et al, in leiu of a fix for this should I be able to add annotations to change the attributes of these fields.
 
 Is it possible to set the insert and update attributes of a mapped property through annotations ?
 
 Thanks again
 
 Duncan
 
 Martin Taal wrote:
 > Hi Duncan,
 > Can you send me the complete ecore?
 >
 > gr. Martin
 >
 > Duncan ALexander wrote:
 >> Hi,
 >>     I am having an issue whereby a subclass in my Teneo generated
 >> hibernate mapping appears to be duplicating the properties of a
 >> superclass. When attempting to initialise the database with the
 >> mapping it throws an error :
 >>
 >> Exception in thread "main" org.hibernate.MappingException: Repeated
 >> column in mapping for entity: kf.CodedXSMeasure column:
 >> xsattachdataset (should be mapped with insert="false" update="false")
 >>     at
 >>  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:652)
 >>
 >>     at
 >>  org.hibernate.mapping.PersistentClass.checkPropertyColumnDup lication(PersistentClass.java:674)
 >>
 >>     at
 >>  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:696)
 >>
 >>
 >> The ecore generated from my model appears to be correct in that there
 >> is no duplication, it only appears after generating the hibernate
 >> mapping. The classes are UncodedMeasure and CodedMeasure.
 >> UncodedMeasure is generated correctly, but CodedMeasure is not.
 >>
 >> My ecore looks like this:
 >>
 >> <eClassifiers xsi:type="ecore:EClass" name="UncodedMeasure"
 >> eSuperTypes="#//Measure base.ecore#//Codable"/>
 >>
 >> <eClassifiers xsi:type="ecore:EClass" name="CodedMeasure"
 >> eSuperTypes="#//Measure base.ecore#//Codable"/>
 >>
 >> But my generated hibernate mapping comes out as:
 >>
 >> <subclass entity-name="UncodedMeasure" abstract="false" lazy="false"
 >> extends="Measure" discriminator-value="UncodedMeasure">
 >>         <meta attribute="eclassName">UncodedMeasure</meta>
 >>         <meta
 >> attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 >>
 >>     </subclass>
 >>     <subclass entity-name="CodedMeasure" abstract="false" lazy="false"
 >> extends="Measure" discriminator-value="CodedMeasure">
 >>         <meta attribute="eclassName">CodedMeasure</meta>
 >>         <meta
 >> attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 >>
 >>         <property name="xsAttachDataset" lazy="false" insert="true"
 >> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>             <column not-null="false" unique="false"
 >> name="`xsattachdataset`"/>
 >>         </property>
 >>         <property name="xsAttachGroup" lazy="false" insert="true"
 >> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>             <column not-null="false" unique="false"
 >> name="`xsattachgroup`"/>
 >>         </property>
 >>         <property name="xsAttachSection" lazy="false" insert="true"
 >> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>             <column not-null="false" unique="false"
 >> name="`xsattachsection`"/>
 >>         </property>
 >>         <property name="xsAttachObservation" lazy="false"
 >> insert="true" update="true" not-null="false" unique="false"
 >> type="java.lang.Boolean">
 >>             <column not-null="false" unique="false"
 >> name="`xsattachobservation`"/>
 >>         </property>
 >>         <property name="timeFormat" lazy="false" insert="true"
 >> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>             <column not-null="false" unique="false" name="`timeformat`"/>
 >>         </property>
 >>         <many-to-one name="CodeList" entity-name="ItemScheme"
 >> cascade="merge,persist,save-update,lock,refresh" lazy="false"
 >> insert="true" update="true" not-null="false">
 >>             <column not-null="false" unique="false"
 >> name="`itemscheme_codelist_urn`"/>
 >>         </many-to-one>
 >>     </subclass>
 >>
 >>
 >> The properties which are mapped under CodedMeasure should not be there
 >> as they form part of a class further up the heirarchy and there is
 >> nothing in the ecore to indicate that the two classes should be mapped
 >> differently. They do normally have some other differentiating features
 >> but I have stripped them out to highlight the problem.
 >>
 >> regards
 >>
 >> Duncan
 >
 >
 |  |  |  |  | 
| Re: Duplicate properties appearing in subclass. [message #76082 is a reply to message #76066] | Tue, 20 March 2007 10:55  |  | 
| Eclipse User  |  |  |  |  | Hi Duncan, It is partially a bug in the multi-inheritance handling. I solved this and will check this in later
 today probably.
 However on other issue remains: the uncodedmeasure and codedmeasure should have the same properties
 in the hbm file. The difference happens because when I read the ecore files (to generate the hbm)
 the uncodedmeasure has only one supertype (measure) while the codedmeasure has two supertypes:
 measure and codable.
 The strange thing is that when I open the ecores in the standard emf ecore editor that
 uncodedmeasure has two supertypes (measure and codable).
 
 When you look at your generated code and debug at runtime can you see which supertypes the
 UncodedMeasure has?
 
 Which version of emf are you using? I am using emf 2.3.
 
 gr. Martin
 
 Duncan ALexander wrote:
 > Martin et al,
 >     in leiu of a fix for this should I be able to add annotations to
 > change the attributes of these fields.
 >
 > Is it possible to set the insert and update attributes of a mapped
 > property through annotations ?
 >
 > Thanks again
 >
 > Duncan
 >
 > Martin Taal wrote:
 >> Hi Duncan,
 >> Can you send me the complete ecore?
 >>
 >> gr. Martin
 >>
 >> Duncan ALexander wrote:
 >>> Hi,
 >>>     I am having an issue whereby a subclass in my Teneo generated
 >>> hibernate mapping appears to be duplicating the properties of a
 >>> superclass. When attempting to initialise the database with the
 >>> mapping it throws an error :
 >>>
 >>> Exception in thread "main" org.hibernate.MappingException: Repeated
 >>> column in mapping for entity: kf.CodedXSMeasure column:
 >>> xsattachdataset (should be mapped with insert="false" update="false")
 >>>     at
 >>>  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:652)
 >>>
 >>>     at
 >>>  org.hibernate.mapping.PersistentClass.checkPropertyColumnDup lication(PersistentClass.java:674)
 >>>
 >>>     at
 >>>  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:696)
 >>>
 >>>
 >>> The ecore generated from my model appears to be correct in that there
 >>> is no duplication, it only appears after generating the hibernate
 >>> mapping. The classes are UncodedMeasure and CodedMeasure.
 >>> UncodedMeasure is generated correctly, but CodedMeasure is not.
 >>>
 >>> My ecore looks like this:
 >>>
 >>> <eClassifiers xsi:type="ecore:EClass" name="UncodedMeasure"
 >>> eSuperTypes="#//Measure base.ecore#//Codable"/>
 >>>
 >>> <eClassifiers xsi:type="ecore:EClass" name="CodedMeasure"
 >>> eSuperTypes="#//Measure base.ecore#//Codable"/>
 >>>
 >>> But my generated hibernate mapping comes out as:
 >>>
 >>> <subclass entity-name="UncodedMeasure" abstract="false" lazy="false"
 >>> extends="Measure" discriminator-value="UncodedMeasure">
 >>>         <meta attribute="eclassName">UncodedMeasure</meta>
 >>>         <meta
 >>> attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 >>>
 >>>     </subclass>
 >>>     <subclass entity-name="CodedMeasure" abstract="false"
 >>> lazy="false" extends="Measure" discriminator-value="CodedMeasure">
 >>>         <meta attribute="eclassName">CodedMeasure</meta>
 >>>         <meta
 >>> attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 >>>
 >>>         <property name="xsAttachDataset" lazy="false" insert="true"
 >>> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>>             <column not-null="false" unique="false"
 >>> name="`xsattachdataset`"/>
 >>>         </property>
 >>>         <property name="xsAttachGroup" lazy="false" insert="true"
 >>> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>>             <column not-null="false" unique="false"
 >>> name="`xsattachgroup`"/>
 >>>         </property>
 >>>         <property name="xsAttachSection" lazy="false" insert="true"
 >>> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>>             <column not-null="false" unique="false"
 >>> name="`xsattachsection`"/>
 >>>         </property>
 >>>         <property name="xsAttachObservation" lazy="false"
 >>> insert="true" update="true" not-null="false" unique="false"
 >>> type="java.lang.Boolean">
 >>>             <column not-null="false" unique="false"
 >>> name="`xsattachobservation`"/>
 >>>         </property>
 >>>         <property name="timeFormat" lazy="false" insert="true"
 >>> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>>             <column not-null="false" unique="false"
 >>> name="`timeformat`"/>
 >>>         </property>
 >>>         <many-to-one name="CodeList" entity-name="ItemScheme"
 >>> cascade="merge,persist,save-update,lock,refresh" lazy="false"
 >>> insert="true" update="true" not-null="false">
 >>>             <column not-null="false" unique="false"
 >>> name="`itemscheme_codelist_urn`"/>
 >>>         </many-to-one>
 >>>     </subclass>
 >>>
 >>>
 >>> The properties which are mapped under CodedMeasure should not be
 >>> there as they form part of a class further up the heirarchy and there
 >>> is nothing in the ecore to indicate that the two classes should be
 >>> mapped differently. They do normally have some other differentiating
 >>> features but I have stripped them out to highlight the problem.
 >>>
 >>> regards
 >>>
 >>> Duncan
 >>
 >>
 
 
 --
 
 With Regards, Martin Taal
 
 Springsite/Elver.org
 Office: Hardwareweg 4, 3821 BV Amersfoort
 Postal: Nassaulaan 7, 3941 EC Doorn
 The Netherlands
 Tel: +31 (0)84 420 2397
 Fax: +31 (0)84 225 9307
 Mail: mtaal@springsite.com - mtaal@elver.org
 Web: www.springsite.com - www.elver.org
 |  |  |  |  | 
| Re: Duplicate properties appearing in subclass. [message #603736 is a reply to message #76017] | Tue, 20 March 2007 08:39  |  | 
| Eclipse User  |  |  |  |  | Hi Duncan, Can you send me the complete ecore?
 
 gr. Martin
 
 Duncan ALexander wrote:
 > Hi,
 >     I am having an issue whereby a subclass in my Teneo generated
 > hibernate mapping appears to be duplicating the properties of a
 > superclass. When attempting to initialise the database with the mapping
 > it throws an error :
 >
 > Exception in thread "main" org.hibernate.MappingException: Repeated
 > column in mapping for entity: kf.CodedXSMeasure column: xsattachdataset
 > (should be mapped with insert="false" update="false")
 >     at
 >  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:652)
 >
 >     at
 >  org.hibernate.mapping.PersistentClass.checkPropertyColumnDup lication(PersistentClass.java:674)
 >
 >     at
 >  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:696)
 >
 >
 > The ecore generated from my model appears to be correct in that there is
 > no duplication, it only appears after generating the hibernate mapping.
 > The classes are UncodedMeasure and CodedMeasure. UncodedMeasure is
 > generated correctly, but CodedMeasure is not.
 >
 > My ecore looks like this:
 >
 > <eClassifiers xsi:type="ecore:EClass" name="UncodedMeasure"
 > eSuperTypes="#//Measure base.ecore#//Codable"/>
 >
 > <eClassifiers xsi:type="ecore:EClass" name="CodedMeasure"
 > eSuperTypes="#//Measure base.ecore#//Codable"/>
 >
 > But my generated hibernate mapping comes out as:
 >
 > <subclass entity-name="UncodedMeasure" abstract="false" lazy="false"
 > extends="Measure" discriminator-value="UncodedMeasure">
 >         <meta attribute="eclassName">UncodedMeasure</meta>
 >         <meta
 > attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 >
 >     </subclass>
 >
 > <subclass entity-name="CodedMeasure" abstract="false" lazy="false"
 > extends="Measure" discriminator-value="CodedMeasure">
 >         <meta attribute="eclassName">CodedMeasure</meta>
 >         <meta
 > attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 >
 >         <property name="xsAttachDataset" lazy="false" insert="true"
 > update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >             <column not-null="false" unique="false"
 > name="`xsattachdataset`"/>
 >         </property>
 >         <property name="xsAttachGroup" lazy="false" insert="true"
 > update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >             <column not-null="false" unique="false"
 > name="`xsattachgroup`"/>
 >         </property>
 >         <property name="xsAttachSection" lazy="false" insert="true"
 > update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >             <column not-null="false" unique="false"
 > name="`xsattachsection`"/>
 >         </property>
 >         <property name="xsAttachObservation" lazy="false" insert="true"
 > update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >             <column not-null="false" unique="false"
 > name="`xsattachobservation`"/>
 >         </property>
 >         <property name="timeFormat" lazy="false" insert="true"
 > update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >             <column not-null="false" unique="false" name="`timeformat`"/>
 >         </property>
 >         <many-to-one name="CodeList" entity-name="ItemScheme"
 > cascade="merge,persist,save-update,lock,refresh" lazy="false"
 > insert="true" update="true" not-null="false">
 >             <column not-null="false" unique="false"
 > name="`itemscheme_codelist_urn`"/>
 >         </many-to-one>
 >     </subclass>
 >
 >
 > The properties which are mapped under CodedMeasure should not be there
 > as they form part of a class further up the heirarchy and there is
 > nothing in the ecore to indicate that the two classes should be mapped
 > differently. They do normally have some other differentiating features
 > but I have stripped them out to highlight the problem.
 >
 > regards
 >
 > Duncan
 
 
 --
 
 With Regards, Martin Taal
 
 Springsite/Elver.org
 Office: Hardwareweg 4, 3821 BV Amersfoort
 Postal: Nassaulaan 7, 3941 EC Doorn
 The Netherlands
 Tel: +31 (0)84 420 2397
 Fax: +31 (0)84 225 9307
 Mail: mtaal@springsite.com - mtaal@elver.org
 Web: www.springsite.com - www.elver.org
 |  |  |  |  | 
| Re: Duplicate properties appearing in subclass. [message #603740 is a reply to message #76049] | Tue, 20 March 2007 10:49  |  | 
| Eclipse User  |  |  |  |  | Martin et al, in leiu of a fix for this should I be able to add annotations to change the attributes of these fields.
 
 Is it possible to set the insert and update attributes of a mapped property through annotations ?
 
 Thanks again
 
 Duncan
 
 Martin Taal wrote:
 > Hi Duncan,
 > Can you send me the complete ecore?
 >
 > gr. Martin
 >
 > Duncan ALexander wrote:
 >> Hi,
 >>     I am having an issue whereby a subclass in my Teneo generated
 >> hibernate mapping appears to be duplicating the properties of a
 >> superclass. When attempting to initialise the database with the
 >> mapping it throws an error :
 >>
 >> Exception in thread "main" org.hibernate.MappingException: Repeated
 >> column in mapping for entity: kf.CodedXSMeasure column:
 >> xsattachdataset (should be mapped with insert="false" update="false")
 >>     at
 >>  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:652)
 >>
 >>     at
 >>  org.hibernate.mapping.PersistentClass.checkPropertyColumnDup lication(PersistentClass.java:674)
 >>
 >>     at
 >>  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:696)
 >>
 >>
 >> The ecore generated from my model appears to be correct in that there
 >> is no duplication, it only appears after generating the hibernate
 >> mapping. The classes are UncodedMeasure and CodedMeasure.
 >> UncodedMeasure is generated correctly, but CodedMeasure is not.
 >>
 >> My ecore looks like this:
 >>
 >> <eClassifiers xsi:type="ecore:EClass" name="UncodedMeasure"
 >> eSuperTypes="#//Measure base.ecore#//Codable"/>
 >>
 >> <eClassifiers xsi:type="ecore:EClass" name="CodedMeasure"
 >> eSuperTypes="#//Measure base.ecore#//Codable"/>
 >>
 >> But my generated hibernate mapping comes out as:
 >>
 >> <subclass entity-name="UncodedMeasure" abstract="false" lazy="false"
 >> extends="Measure" discriminator-value="UncodedMeasure">
 >>         <meta attribute="eclassName">UncodedMeasure</meta>
 >>         <meta
 >> attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 >>
 >>     </subclass>
 >>     <subclass entity-name="CodedMeasure" abstract="false" lazy="false"
 >> extends="Measure" discriminator-value="CodedMeasure">
 >>         <meta attribute="eclassName">CodedMeasure</meta>
 >>         <meta
 >> attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 >>
 >>         <property name="xsAttachDataset" lazy="false" insert="true"
 >> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>             <column not-null="false" unique="false"
 >> name="`xsattachdataset`"/>
 >>         </property>
 >>         <property name="xsAttachGroup" lazy="false" insert="true"
 >> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>             <column not-null="false" unique="false"
 >> name="`xsattachgroup`"/>
 >>         </property>
 >>         <property name="xsAttachSection" lazy="false" insert="true"
 >> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>             <column not-null="false" unique="false"
 >> name="`xsattachsection`"/>
 >>         </property>
 >>         <property name="xsAttachObservation" lazy="false"
 >> insert="true" update="true" not-null="false" unique="false"
 >> type="java.lang.Boolean">
 >>             <column not-null="false" unique="false"
 >> name="`xsattachobservation`"/>
 >>         </property>
 >>         <property name="timeFormat" lazy="false" insert="true"
 >> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>             <column not-null="false" unique="false" name="`timeformat`"/>
 >>         </property>
 >>         <many-to-one name="CodeList" entity-name="ItemScheme"
 >> cascade="merge,persist,save-update,lock,refresh" lazy="false"
 >> insert="true" update="true" not-null="false">
 >>             <column not-null="false" unique="false"
 >> name="`itemscheme_codelist_urn`"/>
 >>         </many-to-one>
 >>     </subclass>
 >>
 >>
 >> The properties which are mapped under CodedMeasure should not be there
 >> as they form part of a class further up the heirarchy and there is
 >> nothing in the ecore to indicate that the two classes should be mapped
 >> differently. They do normally have some other differentiating features
 >> but I have stripped them out to highlight the problem.
 >>
 >> regards
 >>
 >> Duncan
 >
 >
 |  |  |  |  | 
| Re: Duplicate properties appearing in subclass. [message #603744 is a reply to message #76066] | Tue, 20 March 2007 10:55  |  | 
| Eclipse User  |  |  |  |  | Hi Duncan, It is partially a bug in the multi-inheritance handling. I solved this and will check this in later
 today probably.
 However on other issue remains: the uncodedmeasure and codedmeasure should have the same properties
 in the hbm file. The difference happens because when I read the ecore files (to generate the hbm)
 the uncodedmeasure has only one supertype (measure) while the codedmeasure has two supertypes:
 measure and codable.
 The strange thing is that when I open the ecores in the standard emf ecore editor that
 uncodedmeasure has two supertypes (measure and codable).
 
 When you look at your generated code and debug at runtime can you see which supertypes the
 UncodedMeasure has?
 
 Which version of emf are you using? I am using emf 2.3.
 
 gr. Martin
 
 Duncan ALexander wrote:
 > Martin et al,
 >     in leiu of a fix for this should I be able to add annotations to
 > change the attributes of these fields.
 >
 > Is it possible to set the insert and update attributes of a mapped
 > property through annotations ?
 >
 > Thanks again
 >
 > Duncan
 >
 > Martin Taal wrote:
 >> Hi Duncan,
 >> Can you send me the complete ecore?
 >>
 >> gr. Martin
 >>
 >> Duncan ALexander wrote:
 >>> Hi,
 >>>     I am having an issue whereby a subclass in my Teneo generated
 >>> hibernate mapping appears to be duplicating the properties of a
 >>> superclass. When attempting to initialise the database with the
 >>> mapping it throws an error :
 >>>
 >>> Exception in thread "main" org.hibernate.MappingException: Repeated
 >>> column in mapping for entity: kf.CodedXSMeasure column:
 >>> xsattachdataset (should be mapped with insert="false" update="false")
 >>>     at
 >>>  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:652)
 >>>
 >>>     at
 >>>  org.hibernate.mapping.PersistentClass.checkPropertyColumnDup lication(PersistentClass.java:674)
 >>>
 >>>     at
 >>>  org.hibernate.mapping.PersistentClass.checkColumnDuplication (PersistentClass.java:696)
 >>>
 >>>
 >>> The ecore generated from my model appears to be correct in that there
 >>> is no duplication, it only appears after generating the hibernate
 >>> mapping. The classes are UncodedMeasure and CodedMeasure.
 >>> UncodedMeasure is generated correctly, but CodedMeasure is not.
 >>>
 >>> My ecore looks like this:
 >>>
 >>> <eClassifiers xsi:type="ecore:EClass" name="UncodedMeasure"
 >>> eSuperTypes="#//Measure base.ecore#//Codable"/>
 >>>
 >>> <eClassifiers xsi:type="ecore:EClass" name="CodedMeasure"
 >>> eSuperTypes="#//Measure base.ecore#//Codable"/>
 >>>
 >>> But my generated hibernate mapping comes out as:
 >>>
 >>> <subclass entity-name="UncodedMeasure" abstract="false" lazy="false"
 >>> extends="Measure" discriminator-value="UncodedMeasure">
 >>>         <meta attribute="eclassName">UncodedMeasure</meta>
 >>>         <meta
 >>> attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 >>>
 >>>     </subclass>
 >>>     <subclass entity-name="CodedMeasure" abstract="false"
 >>> lazy="false" extends="Measure" discriminator-value="CodedMeasure">
 >>>         <meta attribute="eclassName">CodedMeasure</meta>
 >>>         <meta
 >>> attribute="epackage">http://www.sdmx.org/resources/infomodel/1.0/keyfamily.xmi</meta>
 >>>
 >>>         <property name="xsAttachDataset" lazy="false" insert="true"
 >>> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>>             <column not-null="false" unique="false"
 >>> name="`xsattachdataset`"/>
 >>>         </property>
 >>>         <property name="xsAttachGroup" lazy="false" insert="true"
 >>> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>>             <column not-null="false" unique="false"
 >>> name="`xsattachgroup`"/>
 >>>         </property>
 >>>         <property name="xsAttachSection" lazy="false" insert="true"
 >>> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>>             <column not-null="false" unique="false"
 >>> name="`xsattachsection`"/>
 >>>         </property>
 >>>         <property name="xsAttachObservation" lazy="false"
 >>> insert="true" update="true" not-null="false" unique="false"
 >>> type="java.lang.Boolean">
 >>>             <column not-null="false" unique="false"
 >>> name="`xsattachobservation`"/>
 >>>         </property>
 >>>         <property name="timeFormat" lazy="false" insert="true"
 >>> update="true" not-null="false" unique="false" type="java.lang.Boolean">
 >>>             <column not-null="false" unique="false"
 >>> name="`timeformat`"/>
 >>>         </property>
 >>>         <many-to-one name="CodeList" entity-name="ItemScheme"
 >>> cascade="merge,persist,save-update,lock,refresh" lazy="false"
 >>> insert="true" update="true" not-null="false">
 >>>             <column not-null="false" unique="false"
 >>> name="`itemscheme_codelist_urn`"/>
 >>>         </many-to-one>
 >>>     </subclass>
 >>>
 >>>
 >>> The properties which are mapped under CodedMeasure should not be
 >>> there as they form part of a class further up the heirarchy and there
 >>> is nothing in the ecore to indicate that the two classes should be
 >>> mapped differently. They do normally have some other differentiating
 >>> features but I have stripped them out to highlight the problem.
 >>>
 >>> regards
 >>>
 >>> Duncan
 >>
 >>
 
 
 --
 
 With Regards, Martin Taal
 
 Springsite/Elver.org
 Office: Hardwareweg 4, 3821 BV Amersfoort
 Postal: Nassaulaan 7, 3941 EC Doorn
 The Netherlands
 Tel: +31 (0)84 420 2397
 Fax: +31 (0)84 225 9307
 Mail: mtaal@springsite.com - mtaal@elver.org
 Web: www.springsite.com - www.elver.org
 |  |  |  | 
 
 
 Current Time: Thu Oct 30 20:31:00 EDT 2025 
 Powered by FUDForum . Page generated in 0.28142 seconds |