database - Getting Hibernate mapping exception with java.util.list -


hi, getting problem data member of class. data member contactnumbers. contactnumbers java.util.list , getting errors when hibernate maps list in database. want hibernate creates array contactnumbers in database postgresql. when remove variable contactnumbers of type list businessuser class, program runs correctly. can helps??

here class:

public class user   {     //other varibale contructors setters , getters }  public class businessuser  extends users implements isserializable {     list <string> contactnumbers;     //other varibale contructors setters , getters } 

my user mapping file ok. business mapping file

<?xml version="1.0"?> <!doctype hibernate-mapping public "-//hibernate/hibernate mapping dtd 3.0//en" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- generated dec 2, 2010 4:42:45 hibernate tools 3.4.0.beta1 --> <hibernate-mapping>     <joined-subclass name="com.biddingsystem.models.businessuser" extends="com.biddingsystem.models.users" table="businessuser" lazy="false">         <key>             <column name="userid" />         </key>         <property name="businessname" type="java.lang.string">             <column name="businessname" />         </property>         <property name="contactpersondetails" type="java.lang.string">             <column name="contactpersondetails" />         </property>         <property name="faxnumber" type="java.lang.string">             <column name="faxnumber" />         </property>         <list name="contactnumbers" inverse="false" table="businessuser" lazy="true">             <key>                 <column name="businessname" />             </key>             <list-index></list-index>             <element type="java.lang.string">                 <column name="contactnumbers" />             </element>         </list>     </joined-subclass> </hibernate-mapping> 

i getting error:

initial sessionfactory creation failed.org.hibernate.mappingexception: foreign key (fk6214b38b81858749:businessuser [businessname])) must have same number of columns referenced primary key (businessuser [businessname,idx]) [warn] /biddingsystem/system java.lang.exceptionininitializererror     @ com.biddingsystem.server.hibernateutil.<clinit>(hibernateutil.java:18)     @ com.biddingsystem.server.serviceimpl.<init>(serviceimpl.java:32)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:39)     @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:27)     @ java.lang.reflect.constructor.newinstance(constructor.java:513)     @ java.lang.class.newinstance0(class.java:355)     @ java.lang.class.newinstance(class.java:308)     @ org.mortbay.jetty.servlet.holder.newinstance(holder.java:153)     @ org.mortbay.jetty.servlet.servletholder.getservlet(servletholder.java:339)     @ org.mortbay.jetty.servlet.servletholder.handle(servletholder.java:463)     @ org.mortbay.jetty.servlet.servlethandler.handle(servlethandler.java:362)     @ org.mortbay.jetty.security.securityhandler.handle(securityhandler.java:216)     @ org.mortbay.jetty.servlet.sessionhandler.handle(sessionhandler.java:181)     @ org.mortbay.jetty.handler.contexthandler.handle(contexthandler.java:729)     @ org.mortbay.jetty.webapp.webappcontext.handle(webappcontext.java:405)     @ org.mortbay.jetty.handler.handlerwrapper.handle(handlerwrapper.java:152)     @ org.mortbay.jetty.handler.requestloghandler.handle(requestloghandler.java:49)     @ org.mortbay.jetty.handler.handlerwrapper.handle(handlerwrapper.java:152)     @ org.mortbay.jetty.server.handle(server.java:324)     @ org.mortbay.jetty.httpconnection.handlerequest(httpconnection.java:505)     @ org.mortbay.jetty.httpconnection$requesthandler.content(httpconnection.java:843)     @ org.mortbay.jetty.httpparser.parsenext(httpparser.java:647)     @ org.mortbay.jetty.httpparser.parseavailable(httpparser.java:211)     @ org.mortbay.jetty.httpconnection.handle(httpconnection.java:380)     @ org.mortbay.io.nio.selectchannelendpoint.run(selectchannelendpoint.java:395)     @ org.mortbay.thread.queuedthreadpool$poolthread.run(queuedthreadpool.java:488) caused by: org.hibernate.mappingexception: foreign key (fk6214b38b81858749:businessuser [businessname])) must have same number of columns referenced primary key (businessuser [businessname,idx])     @ org.hibernate.mapping.foreignkey.aligncolumns(foreignkey.java:113)     @ org.hibernate.mapping.foreignkey.aligncolumns(foreignkey.java:96)     @ org.hibernate.cfg.configuration.secondpasscompileforeignkeys(configuration.java:1354)     @ org.hibernate.cfg.configuration.secondpasscompile(configuration.java:1261)     @ org.hibernate.cfg.configuration.buildsessionfactory(configuration.java:1377)     @ com.biddingsystem.server.hibernateutil.<clinit>(hibernateutil.java:14)     ... 26 more [warn] nested in java.lang.exceptionininitializererror: org.hibernate.mappingexception: foreign key (fk6214b38b81858749:businessuser [businessname])) must have same number of columns referenced primary key (businessuser [businessname,idx])     @ org.hibernate.mapping.foreignkey.aligncolumns(foreignkey.java:113)     @ org.hibernate.mapping.foreignkey.aligncolumns(foreignkey.java:96)     @ org.hibernate.cfg.configuration.secondpasscompileforeignkeys(configuration.java:1354)     @ org.hibernate.cfg.configuration.secondpasscompile(configuration.java:1261)     @ org.hibernate.cfg.configuration.buildsessionfactory(configuration.java:1377)     @ com.biddingsystem.server.hibernateutil.<clinit>(hibernateutil.java:14)     @ com.biddingsystem.server.serviceimpl.<init>(serviceimpl.java:32)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)     @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:39)     @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:27)     @ java.lang.reflect.constructor.newinstance(constructor.java:513)     @ java.lang.class.newinstance0(class.java:355)     @ java.lang.class.newinstance(class.java:308)     @ org.mortbay.jetty.servlet.holder.newinstance(holder.java:153)     @ org.mortbay.jetty.servlet.servletholder.getservlet(servletholder.java:339)     @ org.mortbay.jetty.servlet.servletholder.handle(servletholder.java:463)     @ org.mortbay.jetty.servlet.servlethandler.handle(servlethandler.java:362)     @ org.mortbay.jetty.security.securityhandler.handle(securityhandler.java:216)     @ org.mortbay.jetty.servlet.sessionhandler.handle(sessionhandler.java:181)     @ org.mortbay.jetty.handler.contexthandler.handle(contexthandler.java:729)     @ org.mortbay.jetty.webapp.webappcontext.handle(webappcontext.java:405)     @ org.mortbay.jetty.handler.handlerwrapper.handle(handlerwrapper.java:152)     @ org.mortbay.jetty.handler.requestloghandler.handle(requestloghandler.java:49)     @ org.mortbay.jetty.handler.handlerwrapper.handle(handlerwrapper.java:152)     @ org.mortbay.jetty.server.handle(server.java:324)     @ org.mortbay.jetty.httpconnection.handlerequest(httpconnection.java:505)     @ org.mortbay.jetty.httpconnection$requesthandler.content(httpconnection.java:843)     @ org.mortbay.jetty.httpparser.parsenext(httpparser.java:647)     @ org.mortbay.jetty.httpparser.parseavailable(httpparser.java:211)     @ org.mortbay.jetty.httpconnection.handle(httpconnection.java:380)     @ org.mortbay.io.nio.selectchannelendpoint.run(selectchannelendpoint.java:395)     @ org.mortbay.thread.queuedthreadpool$poolthread.run(queuedthreadpool.java:488) 

you're defining list of strings collection on businessuser , you're mapping if list of hibernate-mapped entities, they're not.

so, given mapping you've defined, hibernate expects contactnumbers list of businessuser (as you've specified: "table='businessuser'" collection), in fact it's list of strings.

the solution consider defining contactnumber entity: more simple string? if so, deserve own table? if not, wouldn't enough add few fields contactnumber1, contanctnumber2 on businessuser entity (and have these table columns on businessuser table)? number of contactnumbers limited user?


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -