Ticket #172 (new defect)

Opened 3 years ago

HBM generation error

Reported by: koenhandekyn Assigned to: eitan
Priority: major Component: metasystem
Version: Keywords:
Cc:

Description

the following object relationships

Raam --> CompositeList? Stuk --> compositeField Sectie

generates the following INCORRECT hbm extract

<bag name="stukken" access="com.u2d.persist.PropertyAccessorAdapter">
      <key column="raam_id"/>
      <composite-element class="model.Stuk">
        <property name="omschrijving" type="com.u2d.persist.type.StringEOUserType" access="com.u2d.persist.PropertyAccessorAdapter"/>
        <property name="hoeken" type="com.u2d.persist.type.IntEOUserType" access="com.u2d.persist.PropertyAccessorAdapter"/>
        <property name="zijdes" type="com.u2d.persist.type.IntEOUserType" access="com.u2d.persist.PropertyAccessorAdapter"/>
        <property name="createdOn" type="com.u2d.persist.type.DateTimeUserType" access="com.u2d.persist.PropertyAccessorAdapter"/>
        <property name="lengteFormule" type="com.u2d.persist.type.StringEOUserType" access="com.u2d.persist.PropertyAccessorAdapter"/>
        <component name="sectie" class="model.Sectie" access="com.u2d.persist.PropertyAccessorAdapter">
          <property name="breedte" type="com.u2d.persist.type.FloatEOUserType" column="secti_breedte" access="com.u2d.persist.PropertyAccessorAdapter"/>
          <property name="hooogte" type="com.u2d.persist.type.FloatEOUserType" column="secti_hooogte" access="com.u2d.persist.PropertyAccessorAdapter"/>
        </component>
        <many-to-one name="werkpost" column="werkpost_id" access="com.u2d.persist.PropertyAccessorAdapter"/>
      </composite-element>
    </bag>

this throws the following error:

   [java] Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from resource model/Raam.hbm.xml
     [java] 	at org.hibernate.cfg.Configuration.addResource(Configuration.java:545)
     [java] 	at com.u2d.persist.HibernatePersistor.initialize(HibernatePersistor.java:81)
     [java] 	at com.u2d.persist.HBMSingleSession.initialize(HBMSingleSession.java:20)
     [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     [java] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     [java] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     [java] 	at java.lang.reflect.Method.invoke(Method.java:597)
     [java] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1104)
     [java] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1066)
     [java] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1029)
     [java] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:420)
     [java] 	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
     [java] 	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
     [java] 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
     [java] 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:156)
     [java] 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:290)
     [java] 	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:348)
     [java] 	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:92)
     [java] 	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77)
     [java] 	at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:68)
     [java] 	at com.u2d.persist.HibernatePersistor.main(HibernatePersistor.java:450)
     [java] Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from invalid mapping
     [java] 	at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:508)
     [java] 	at org.hibernate.cfg.Configuration.addResource(Configuration.java:542)
     [java] 	... 20 more
     [java] Caused by: org.xml.sax.SAXParseException: The content of element type "composite-element" must match "(meta*,parent?,(property|many-to-one|any|nested-composite-element)*)".
     [java] 	at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
     [java] 	at org.apache.xerces.util.ErrorHandlerWrapper.error(Unknown Source)
     [java] 	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
     [java] 	at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
     [java] 	at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)
     [java] 	at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)
     [java] 	at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
     [java] 	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
     [java] 	at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
     [java] 	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
     [java] 	at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
     [java] 	at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
     [java] 	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
     [java] 	at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
     [java] 	at org.dom4j.io.SAXReader.read(SAXReader.java:465)
     [java] 	at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:505)
     [java] 	... 21 more