These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 
Author Message
 Post subject: Error on mapping primary/foreign keys
PostPosted: Mon Dec 20, 2004 12:32 pm 
Newbie

Joined: Thu Dec 09, 2004 4:26 am
Posts: 19
Location: Yorkshire, UK
I'm trying to map a simple many-to-one. Similar mappings I've done many times before but this one is driving me mad.....

When Hibernate starts it tells me

Quote:
net.sf.hibernate.MappingException: Foreign key (clips [link_id])) must have same number of columns as the referenced primary key (links [link_cona_id,link_elr_name])


The foreign key for clips is OK - link_id but the primary key for links is link_id not link_cona_id,link_elr_name as the exception states.

The only place where the two offending columns are used together is in another mapping where links is used as an associative table - see the ContractArea xml mapping below.

It's probably a stupid typo by me but I can't see it. If anyone can help I would be most grateful.

Thanks for your time,
Tim

Hibernate version:
2.1.7
Mapping documents:
Clip mapping:
Code:
<hibernate-mapping>

   <class name="omnieng.burnbaby.beans.Clip" table="clips">
      <cache usage="read-write" />
      <id name="id" column="id" type="long">
         <generator class="increment" />
      </id>
      <property name="start" column="startMiles" />
      <property name="end" column="endMiles" />
      <many-to-one name="order"
         class="omnieng.burnbaby.beans.Order" not-null="true">
         <column name="order_id" />
      </many-to-one>
      <many-to-one name="link"
         class="omnieng.burnbaby.beans.Link" not-null="true">
         <column name="link_id" />
      </many-to-one>
   </class>
   <query name="allClips">
      <![CDATA[from Clip order by orderId, id]]>
   </query>
   <query name="clipsByOrder">
      <![CDATA[from Clip where orderId = :orderId order by id]]>
   </query>
</hibernate-mapping>


Link mapping:
Code:
<hibernate-mapping>

   <class name="omnieng.burnbaby.beans.Link" table="links"
      mutable="false">
      <cache usage="read-only" />
      <id name="id" column="link_id" type="long">
         <generator class="increment" />
      </id>
      <property name="description" column="link_desc" />
      <property name="startMiles" column="link_start_mileage" />
      <property name="endMiles" column="link_end_mileage" />
      <property name="startGridSequence" column="link_start_gridseq" />
      <property name="endGridSequence" column="link_end_gridseq" />
      <many-to-one name="trid" class="omnieng.burnbaby.beans.TRID"
         insert="false" update="false" outer-join="true">
         <column name="link_elrt_trid" />
         <column name="link_elr_name" />
      </many-to-one>
   </class>

</hibernate-mapping>


Contract Area mapping:
Code:
<hibernate-mapping>

   <class name="omnieng.burnbaby.beans.ContractArea"
      table="contract_area" mutable="false">
      <cache usage="read-only" />
      <id name="id" column="cona_id" type="integer">
         <generator class="increment" />
      </id>
      <property name="name" column="cona_name" />
      <set name="elrs" table="links">
         <cache usage="read-only" />
         <key column="link_cona_id" />
         <many-to-many class="omnieng.burnbaby.beans.ELR" column="link_elr_name"/>
      </set>
   </class>
   <query name="allContractAreas">
      <![CDATA[from ContractArea order by cona_name]]>
   </query>
</hibernate-mapping>

Full stack trace of any exception that occurs:
Quote:
[INFO,Configuration] processing foreign key constraints
[ERROR,[/burnbaby]] DVDBurnbaby: ServletException
javax.servlet.ServletException: Could not load class omnieng.burnbaby.pages.BorderEngine from WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@10f11b8
: null
at org.apache.tapestry.ApplicationServlet.createEngine(ApplicationServlet.java:675)
at org.apache.tapestry.ApplicationServlet.getEngine(ApplicationServlet.java:379)
at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:191)
at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:158)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)


**********************************************************


javax.servlet.ServletException: Could not load class omnieng.burnbaby.pages.BorderEngine from WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@10f11b8
: null

org.apache.tapestry.ApplicationRuntimeException: Could not load class omnieng.burnbaby.pages.BorderEngine from WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@10f11b8
: null

java.lang.ExceptionInInitializerError

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'orderManager' defined in resource for InputStream: Can't resolve reference to bean 'nvsSessionFactory' while setting property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nvsSessionFactory' defined in resource for InputStream: Initialization of bean failed; nested exception is net.sf.hibernate.MappingException: Foreign key (clips [link_id])) must have same number of columns as the referenced primary key (links [link_cona_id,link_elr_name])

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nvsSessionFactory' defined in resource for InputStream: Initialization of bean failed; nested exception is net.sf.hibernate.MappingException: Foreign key (clips [link_id])) must have same number of columns as the referenced primary key (links [link_cona_id,link_elr_name])

net.sf.hibernate.MappingException: Foreign key (clips [link_id])) must have same number of columns as the referenced primary key (links [link_cona_id,link_elr_name])
messages: [Ljava.lang.String;@ab3f4e
throwableCount: 1
throwables: [Ljava.lang.Throwable;@c91f5a
net.sf.hibernate.mapping.ForeignKey.setReferencedTable(ForeignKey.java:67)
net.sf.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:696)
net.sf.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:671)
net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:789)
org.springframework.orm.hibernate.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:467)
org.springframework.orm.hibernate.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:405)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1057)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:287)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:205)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:136)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:954)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary(AbstractAutowireCapableBeanFactory.java:889)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:827)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:662)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:270)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:205)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:136)
omnieng.burnbaby.pages.BorderEngine.<clinit>(BorderEngine.java:31)
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:242)
org.apache.tapestry.util.DefaultResourceResolver.findClass(DefaultResourceResolver.java:103)
org.apache.tapestry.ApplicationServlet.createEngine(ApplicationServlet.java:664)
org.apache.tapestry.ApplicationServlet.getEngine(ApplicationServlet.java:379)
org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:191)
org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:158)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
java.lang.Thread.run(Thread.java:595)

**********************************************************

[ERROR,StandardWrapper[/burnbaby:DVDBurnbaby]] Servlet.service() for servlet DVDBurnbaby threw exception
org.apache.tapestry.ApplicationRuntimeException: Could not load class omnieng.burnbaby.pages.BorderEngine from WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@10f11b8
: null
at org.apache.tapestry.util.DefaultResourceResolver.findClass(DefaultResourceResolver.java:107)
at org.apache.tapestry.ApplicationServlet.createEngine(ApplicationServlet.java:664)
at org.apache.tapestry.ApplicationServlet.getEngine(ApplicationServlet.java:379)
at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:191)
at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:158)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at org.apache.tapestry.util.DefaultResourceResolver.findClass(DefaultResourceResolver.java:103)
... 21 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'orderManager' defined in resource for InputStream: Can't resolve reference to bean 'nvsSessionFactory' while setting property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nvsSessionFactory' defined in resource for InputStream: Initialization of bean failed; nested exception is net.sf.hibernate.MappingException: Foreign key (clips [link_id])) must have same number of columns as the referenced primary key (links [link_cona_id,link_elr_name])
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:958)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveValueIfNecessary(AbstractAutowireCapableBeanFactory.java:889)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:827)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:662)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:270)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:205)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:136)
at omnieng.burnbaby.pages.BorderEngine.<clinit>(BorderEngine.java:31)
... 24 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nvsSessionFactory' defined in resource for InputStream: Initialization of bean failed; nested exception is net.sf.hibernate.MappingException: Foreign key (clips [link_id])) must have same number of columns as the referenced primary key (links [link_cona_id,link_elr_name])
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:300)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:205)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:136)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveReference(AbstractAutowireCapableBeanFactory.java:954)
... 32 more
Caused by: net.sf.hibernate.MappingException: Foreign key (clips [link_id])) must have same number of columns as the referenced primary key (links [link_cona_id,link_elr_name])
at net.sf.hibernate.mapping.ForeignKey.setReferencedTable(ForeignKey.java:67)
at net.sf.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:696)
at net.sf.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:671)
at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:789)
at org.springframework.orm.hibernate.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:467)
at org.springframework.orm.hibernate.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:405)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1057)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:287)

Name and version of the database you are using:
MySQL 4.1.8
Debug level Hibernate log excerpt:
Quote:
[DEBUG,Configuration] null<-org.dom4j.tree.DefaultAttribute@979e8b [Attribute: name resource value "omnieng/burnbaby/beans/Clip.xml"]
[INFO,Configuration] Mapping resource: omnieng/burnbaby/beans/Clip.xml
[DEBUG,DTDEntityResolver] trying to locate http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath under net/sf/hibernate/
[DEBUG,DTDEntityResolver] found http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath
[INFO,Binder] Mapping class: omnieng.burnbaby.beans.Clip -> clips
[DEBUG,CacheFactory] cache for: omnieng.burnbaby.beans.Clip usage strategy: read-write
[DEBUG,Binder] Mapped property: id -> id, type: long
[DEBUG,Binder] Mapped property: start -> startMiles, type: float
[DEBUG,Binder] Mapped property: end -> endMiles, type: float
[DEBUG,Binder] Mapped property: order -> order_id, type: omnieng.burnbaby.beans.Order
[DEBUG,Binder] Mapped property: link -> link_id, type: omnieng.burnbaby.beans.Link
[DEBUG,Binder] Named query: allClips ->
from Clip order by orderId, id

[DEBUG,Binder] Named query: clipsByOrder ->
from Clip where orderId = :orderId order by id

[DEBUG,Configuration] null<-org.dom4j.tree.DefaultAttribute@55bb93 [Attribute: name resource value "omnieng/burnbaby/beans/Order.xml"]
[INFO,Configuration] Mapping resource: omnieng/burnbaby/beans/Order.xml
[DEBUG,DTDEntityResolver] trying to locate http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath under net/sf/hibernate/
[DEBUG,DTDEntityResolver] found http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath
[INFO,Binder] Mapping class: omnieng.burnbaby.beans.Order -> orders
[DEBUG,Binder] Mapped property: id -> id, type: long
[DEBUG,Binder] Mapped property: created -> created, type: timestamp
[DEBUG,Binder] Mapped property: clips, type: java.util.Set
[DEBUG,Binder] Named query: allOrders ->
from Order order by created desc

[DEBUG,Configuration] null<-org.dom4j.tree.DefaultAttribute@12789d2 [Attribute: name resource value "omnieng/burnbaby/beans/Camera.xml"]
[INFO,Configuration] Mapping resource: omnieng/burnbaby/beans/Camera.xml
[DEBUG,DTDEntityResolver] trying to locate http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath under net/sf/hibernate/
[DEBUG,DTDEntityResolver] found http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath
[INFO,Binder] Mapping class: omnieng.burnbaby.beans.Camera -> camera
[DEBUG,CacheFactory] cache for: omnieng.burnbaby.beans.Camera usage strategy: read-only
[DEBUG,Binder] Mapped property: id -> cam_id, type: integer
[DEBUG,Binder] Mapped property: description -> cam_desc, type: string
[DEBUG,Binder] Named query: allCameras ->
from Camera order by description

[DEBUG,Configuration] null<-org.dom4j.tree.DefaultAttribute@13576a2 [Attribute: name resource value "omnieng/burnbaby/beans/ELR.xml"]
[INFO,Configuration] Mapping resource: omnieng/burnbaby/beans/ELR.xml
[DEBUG,DTDEntityResolver] trying to locate http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath under net/sf/hibernate/
[DEBUG,DTDEntityResolver] found http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath
[INFO,Binder] Mapping class: omnieng.burnbaby.beans.ELR -> elr
[DEBUG,CacheFactory] cache for: omnieng.burnbaby.beans.ELR usage strategy: read-only
[DEBUG,Binder] Mapped property: name -> elr_name, type: string
[DEBUG,Binder] Mapped property: trids, type: java.util.Set
[DEBUG,Binder] Named query: allELRs ->
from ELR order by name

[DEBUG,Configuration] null<-org.dom4j.tree.DefaultAttribute@17b0998 [Attribute: name resource value "omnieng/burnbaby/beans/TRID.xml"]
[INFO,Configuration] Mapping resource: omnieng/burnbaby/beans/TRID.xml
[DEBUG,DTDEntityResolver] trying to locate http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath under net/sf/hibernate/
[DEBUG,DTDEntityResolver] found http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath
[INFO,Binder] Mapping class: omnieng.burnbaby.beans.TRID -> elrtrid
[DEBUG,CacheFactory] cache for: omnieng.burnbaby.beans.TRID usage strategy: read-only
[DEBUG,Binder] Mapped property: id -> elrt_trid, type: string
[DEBUG,Binder] Mapped property: elrName -> elrt_elr_name, type: string
[INFO,ReflectHelper] reflection optimizer disabled for: omnieng.burnbaby.beans.TRIDId, VerifyError: (class: omnieng/burnbaby/beans/TRIDId$$BulkBeanByCGLIB$$7474e8bc, method: setPropertyValues signature: (Ljava/lang/Object;[Ljava/lang/Object;)V) Expecting to find array of objects or arrays on stack
[DEBUG,Binder] Mapped property: key -> elrt_trid, elrt_elr_name, type: omnieng.burnbaby.beans.TRIDId
[DEBUG,Binder] Mapped property: elr -> elrt_elr_name, type: omnieng.burnbaby.beans.ELR
[DEBUG,Binder] Mapped property: links, type: java.util.Set
[DEBUG,Configuration] null<-org.dom4j.tree.DefaultAttribute@1eb0 [Attribute: name resource value "omnieng/burnbaby/beans/Link.xml"]
[INFO,Configuration] Mapping resource: omnieng/burnbaby/beans/Link.xml
[DEBUG,DTDEntityResolver] trying to locate http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath under net/sf/hibernate/
[DEBUG,DTDEntityResolver] found http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath
[INFO,Binder] Mapping class: omnieng.burnbaby.beans.Link -> links
[DEBUG,CacheFactory] cache for: omnieng.burnbaby.beans.Link usage strategy: read-only
[DEBUG,Binder] Mapped property: id -> link_id, type: long
[DEBUG,Binder] Mapped property: description -> link_desc, type: string
[DEBUG,Binder] Mapped property: startMiles -> link_start_mileage, type: string
[DEBUG,Binder] Mapped property: endMiles -> link_end_mileage, type: string
[DEBUG,Binder] Mapped property: startGridSequence -> link_start_gridseq, type: double
[DEBUG,Binder] Mapped property: endGridSequence -> link_end_gridseq, type: double
[DEBUG,Binder] Mapped property: trid -> link_elrt_trid, link_elr_name, type: omnieng.burnbaby.beans.TRID
[DEBUG,Configuration] null<-org.dom4j.tree.DefaultAttribute@4ac216 [Attribute: name resource value "omnieng/burnbaby/beans/ContractArea.xml"]
[INFO,Configuration] Mapping resource: omnieng/burnbaby/beans/ContractArea.xml
[DEBUG,DTDEntityResolver] trying to locate http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath under net/sf/hibernate/
[DEBUG,DTDEntityResolver] found http://hibernate.sourceforge.net/hibern ... ng-2.0.dtd in classpath
[INFO,Binder] Mapping class: omnieng.burnbaby.beans.ContractArea -> contract_area
[DEBUG,CacheFactory] cache for: omnieng.burnbaby.beans.ContractArea usage strategy: read-only
[DEBUG,Binder] Mapped property: id -> cona_id, type: integer
[DEBUG,Binder] Mapped property: name -> cona_name, type: string
[INFO,Binder] Mapping collection: omnieng.burnbaby.beans.ContractArea.elrs -> links
[DEBUG,Binder] Mapped property: elrs, type: java.util.Set
[DEBUG,Binder] Named query: allContractAreas ->
from ContractArea order by cona_name

[INFO,Configuration] Configured SessionFactory: null
[DEBUG,Configuration] properties: {java.vendor=Sun Microsystems Inc., show_sql=false, catalina.base=/usr/local/tomcat, c3p0.min_size=2, sun.management.compiler=HotSpot Client Compiler, catalina.useNaming=true, os.name=Linux, sun.boot.class.path=/usr/java/jdk1.5.0/jre/lib/rt.jar:/usr/java/jdk1.5.0/jre/lib/i18n.jar:/usr/java/jdk1.5.0/jre/lib/sunrsasign.jar:/usr/java/jdk1.5.0/jre/lib/jsse.jar:/usr/java/jdk1.5.0/jre/lib/jce.jar:/usr/java/jdk1.5.0/jre/lib/charsets.jar:/usr/java/jdk1.5.0/jre/classes, sun.desktop=gnome, hibernate.c3p0.max_size=100, java.vm.specification.vendor=Sun Microsystems Inc., c3p0.max_size=100, java.runtime.version=1.5.0-b64, hibernate.c3p0.min_size=2, c3p0.acquire_increment=1, hibernate.cache.provider_class=net.sf.ehcache.hibernate.Provider, user.name=tims, shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar, tomcat.util.buf.StringCache.byte.enabled=true, hibernate.c3p0.timeout=3000, user.language=en, java.naming.factory.initial=org.apache.naming.java.javaURLContextFactory, sun.boot.library.path=/usr/java/jdk1.5.0/jre/lib/i386, java.version=1.5.0, user.timezone=Europe/London, sun.arch.data.model=32, hibernate.use_outer_join=true, java.endorsed.dirs=/usr/local/tomcat/common/endorsed, sun.cpu.isalist=, sun.jnu.encoding=UTF-8, file.encoding.pkg=sun.io, package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans., file.separator=/, java.specification.name=Java Platform API Specification, hibernate.cglib.use_reflection_optimizer=true, java.class.version=49.0, user.country=GB, java.home=/usr/java/jdk1.5.0/jre, java.vm.info=mixed mode, sharing, os.version=2.6.6-1.435.2.3custom, path.separator=:, c3p0.idle_test_period=100, java.vm.version=1.5.0-b64, java.awt.printerjob=sun.print.PSPrinterJob, sun.io.unicode.encoding=UnicodeLittle, package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper., java.naming.factory.url.pkgs=org.apache.naming, user.home=/home/tims, java.specification.vendor=Sun Microsystems Inc., java.library.path=/usr/java/jdk1.5.0/jre/lib/i386/client:/usr/java/jdk1.5.0/jre/lib/i386:/usr/java/jdk1.5.0/jre/../lib/i386:/usr/X11R6/lib:/usr/X11R6/lib/modules, java.vendor.url=http://java.sun.com/, java.vm.vendor=Sun Microsystems Inc., common.loader=${catalina.home}/common/classes,${catalina.home}/common/i18n/*.jar,${catalina.home}/common/endorsed/*.jar,${catalina.home}/common/lib/*.jar, java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition, java.class.path=/usr/java/jdk1.5.0/lib/tools.jar:/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/commons-logging-api.jar, use_outer_join=true, c3p0.timeout=3000, java.vm.specification.name=Java Virtual Machine Specification, java.vm.specification.version=1.0, catalina.home=/usr/local/tomcat, sun.cpu.endian=little, sun.os.patch.level=unknown, java.io.tmpdir=/usr/local/tomcat/temp, java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi, server.loader=${catalina.home}/server/classes,${catalina.home}/server/lib/*.jar, os.arch=i386, java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment, java.ext.dirs=/usr/java/jdk1.5.0/jre/lib/ext, user.dir=/usr/local/jakarta-tomcat-5.5.4/bin, hibernate.c3p0.idle_test_period=100, line.separator=
, java.vm.name=Java HotSpot(TM) Client VM, hibernate.c3p0.acquire_increment=1, file.encoding=UTF-8, java.specification.version=1.5, c3p0.max_statements=0, hibernate.c3p0.max_statements=0, hibernate.show_sql=false}
[INFO,LocalSessionFactoryBean] Building new Hibernate SessionFactory
[INFO,Configuration] processing one-to-many association mappings
[DEBUG,Binder] Second pass for collection: omnieng.burnbaby.beans.Order.clips
[INFO,Binder] Mapping collection: omnieng.burnbaby.beans.Order.clips -> clips
[DEBUG,CacheFactory] cache for: omnieng.burnbaby.beans.Order.clips usage strategy: read-write
[DEBUG,Binder] Mapped collection key: order_id, one-to-many: omnieng.burnbaby.beans.Clip
[DEBUG,Binder] Second pass for collection: omnieng.burnbaby.beans.ELR.trids
[INFO,Binder] Mapping collection: omnieng.burnbaby.beans.ELR.trids -> elrtrid
[DEBUG,CacheFactory] cache for: omnieng.burnbaby.beans.ELR.trids usage strategy: read-only
[DEBUG,Binder] Mapped collection key: elrt_elr_name, one-to-many: omnieng.burnbaby.beans.TRID
[DEBUG,Binder] Second pass for collection: omnieng.burnbaby.beans.TRID.links
[INFO,Binder] Mapping collection: omnieng.burnbaby.beans.TRID.links -> links
[DEBUG,CacheFactory] cache for: omnieng.burnbaby.beans.TRID.links usage strategy: read-only
[DEBUG,Binder] Mapped collection key: link_elrt_trid, link_elr_name, one-to-many: omnieng.burnbaby.beans.Link
[DEBUG,Binder] Second pass for collection: omnieng.burnbaby.beans.ContractArea.elrs
[DEBUG,CacheFactory] cache for: omnieng.burnbaby.beans.ContractArea.elrs usage strategy: read-only
[DEBUG,Binder] Mapped collection key: link_cona_id, element: link_elr_name, type: omnieng.burnbaby.beans.ELR
[INFO,Configuration] processing one-to-one association property references
[INFO,Configuration] processing foreign key constraints
[DEBUG,Configuration] resolving reference to class: omnieng.burnbaby.beans.Link
[ERROR,[/burnbaby]] DVDBurnbaby: ServletException
javax.servlet.ServletException: Could not load class omnieng.burnbaby.pages.BorderEngine from WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@10f11b8
: null
at org.apache.tapestry.ApplicationServlet.createEngine(ApplicationServlet.java:675)
at org.apache.tapestry.ApplicationServlet.getEngine(ApplicationServlet.java:379)
at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:191)
at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:158)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:526)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:731)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)


**********************************************************


javax.servlet.ServletException: Could not load class omnieng.burnbaby.pages.BorderEngine from WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@10f11b8
: null

org.apache.tapestry.ApplicationRuntimeException: Could not load class omnieng.burnbaby.pages.BorderEngine from WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@10f11b8
: null

java.lang.ExceptionInInitializerError

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'orderManager' defined in resource for InputStream: Can't resolve reference to bean 'nvsSessionFactory' while setting property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nvsSessionFactory' defined in resource for InputStream: Initialization of bean failed; nested exception is net.sf.hibernate.MappingException: Foreign key (clips [link_id])) must have same number of columns as the referenced primary key (links [link_cona_id,link_elr_name])

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nvsSessionFactory' defined in resource for InputStream: Initialization of bean failed; nested exception is net.sf.hibernate.MappingException: Foreign key (clips [link_id])) must have same number of columns as the referenced primary key (links [link_cona_id,link_elr_name])

net.sf.hibernate.MappingException: Foreign key (clips [link_id])) must have same number of columns as the referenced primary key (links [link_cona_id,link_elr_name])
messages: [Ljava.lang.String;@922804
throwableCount: 1
throwables: [Ljava.lang.Throwable;@1815338



Top
 Profile  
 
 Post subject: same table name for class and link-table
PostPosted: Tue Dec 21, 2004 6:00 am 
Newbie

Joined: Wed Feb 25, 2004 5:28 pm
Posts: 15
I think it is strange that class: Link has table: Links
<class name="omnieng.burnbaby.beans.Link" table="links"
mutable="false">

and set: elrs has the same table name.
<set name="elrs" table="links">

What do you think ?

/Kwan


Top
 Profile  
 
 Post subject: legacy data
PostPosted: Tue Dec 21, 2004 6:20 am 
Newbie

Joined: Thu Dec 09, 2004 4:26 am
Posts: 19
Location: Yorkshire, UK
Hey Kwan, yup, it's the same table. Legacy data.....

Links is an entity in its self but it can be used as an associative many-to-many table for contract areas -> elrs.

That's why it's referenced twice, once as an entity and another as the table in a set.

Just a few minutes ago, I created a view (contract_area_elr) with just the associative data in it and changed the ContractArea.hbm.xml to

Code:
<set name="elrs" table="contract_area_elr">
    <cache usage="read-only" />
    <key column="link_cona_id" />
    <many-to-many class="omnieng.burnbaby.beans.ELR" column="link_elr_name"/>
</set>


this fixed the problem but is not really ideal. It would be nice if I did not have to change the database structure to work around this.

Does it mean that mapped entities cannot be used for associative mappings?

Ta, Tim


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 01, 2005 1:22 pm 
Newbie

Joined: Mon Dec 13, 2004 5:56 pm
Posts: 12
Location: Montreal, QC
hi,

i'm having a similar problem but am using a version of MySQL (4.1) that doesn't support views. i'm using a third party database that is updated monthly, so i can't really modify the schema.

i'm getting this error:
Quote:
Exception in thread "main" org.hibernate.MappingException: Foreign key (FK16D39E577DFB435D:evidence [association_id])) must have same number of columns as the referenced primary key (association [gene_product_id,term_id])


the thing is, i dont have any composite keys. in another strange occurance, i'm using MyISAM tables that have no such foreign key constraints, so i dont understand where FK16D39E577DFB435D came from.

here is my 'evidence' class mapping:
Code:
<class  name="GOEvidence" table="evidence">
<id name="id" column="id" type="integer">
<generator class="hilo"/>
</id>

<property name="code"
column="code"
type="string"
/>

<many-to-one name="association"
class="ca.mcgill.mcb.bias.hibernate.GO.Association"
column="association_id"
/>

<many-to-one name="dbxref"
class="ca.mcgill.mcb.bias.hibernate.GO.DbxRef"
column="dbxref_id"
/>

<property name="seq_acc"
column="seq_acc"
type="string"
/>

</class>


here is my 'association' class mapping:
Code:
<class  name="Association" table="association">
<id name="id" column="id" type="integer">
<generator class="hilo"/>
</id>

<many-to-one name="term"
class="ca.mcgill.mcb.bias.hibernate.GO.Term"
column="term_id"
/>

<many-to-one name="geneProduct"
class="ca.mcgill.mcb.bias.hibernate.GO.GeneProduct"
column="gene_product_id"
/>

<property name="isNot"
column="is_not"
type="integer"
/>

<property name="roleGroup"
column="role_group"
type="integer"
/>

<property name="assocdate"
column="assocdate"
type="integer"
/>

<many-to-one name="sourceDb"
class="ca.mcgill.mcb.bias.hibernate.GO.DB"
column="source_db_id"
/>

</class>


and here is an example of how i use association as many-to-many:
Code:
<class name="GeneProduct" table="gene_product">
<id name="id" column="id" type="integer">
<generator class="hilo"/>
</id>

<property name="symbol"
column="symbol"
type="string"
/>

<many-to-one name="dbxref"
class="ca.mcgill.mcb.bias.hibernate.GO.DbxRef"
column="dbxref_id"
/>

<many-to-one name="species"
class="ca.mcgill.mcb.bias.hibernate.GO.GOSpecies"
column="species_id"
/>

<property name="type"
column="type_id"
type="integer"
/>

<property name="fullname"
column="full_name"
type="string"
/>


<set name="terms" table="association" lazy="true" inverse="false">
<key column="gene_product_id"/>
<many-to-many class="ca.mcgill.mcb.bias.hibernate.GO.Term"
column="term_id"/>
</set>

<set name="synonyms" lazy="true" table="gene_product_synonym">
<key column="gene_product_id"/>
<one-to-many class="ca.mcgill.mcb.bias.hibernate.GO.GeneProductSynonym"/>
</set>

</class>



has anyone else gotten around this problem?

i'm using hibernate v3 from today's CVS repository.

sara


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 4 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.