net.sf.hibernate.WrongClassException: Object with id: 1 was not of the specified subclass:
-------------------------------------------------------------------------------------------
Key: HHH-3382
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3382
Project: Hibernate3
Issue Type: Bug
Environment: hibernate 2.1.7 , mysql
Reporter: cristian vargas
Attachments: diagram.JPG
i got this error in my project , please can anybody help me? i have an inheritance mapping
, you can see the class diagrama in the attachment. i want to map the sell class, there
are two references , one to the client class and the other one to the employment class.
this is the mapping that i built
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="Inventory.Sell" table="Sell">
<id name="Id_Sell" type="integer">
<column name="Id_Sell" />
<generator class="identity" />
</id>
<property name="FechaPedido" type="date">
<column name="FechaPedido" />
</property>
<many-to-one name="Id_Cliente" class="Inventory.Client" >
<column name="Id_Cliente" not-null="false" />
</many-to-one>
<many-to-one name="Id_Employment" class="Inventory.Employment"
>
<column name="Id_Employment" not-null="false" />
</many-to-one>
</class>
</hibernate-mapping>
and this is the mapping for the inheritance
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="Inventory.Person" table="person" >
<id name="Id_Persona" type="integer">
<column name="Id_Persona" />
<generator class="identity" />
</id>
<property name="CI" type="string">
<column name="CI" length="20" />
</property>
<property name="nombre" type="string">
<column name="Nombre" length="100" />
</property>
<property name="trabajoDir" type="string">
<column name="DireccionTrabajo" length="100" />
</property>
<property name="DireccionDomicilio" type="string">
<column name="DireccionDomicilio" length="100" />
</property>
<property name="Celular" type="string">
<column name="Celular" length="100" />
</property>
<set name="emailAddresses" table="email">
<key column="Id_Email"/>
<element type="string" column="Email"/>
</set>
<set name="telefono" table="telefono">
<key column="Id_Telefono"/>
<element type="string" column="Telefono"/>
</set>
<set name="fax" table="fax">
<key column="Id_Fax"/>
<element type="string" column="Fax"/>
</set>
<joined-subclass name="Inventory.Employment"
table="employment">
<key column="Id_Empleado"/>
<property name="Sueldo" type="string">
<column name="Sueldo" length="100" />
</property>
<property name="Moneda" type="string">
<column name="Moneda" length="100" />
</property>
<property name="FechaContrato" type="date">
<column name="FechaContrato" />
</property>
</joined-subclass>
<joined-subclass name="Inventory.Client" table="client">
<key column="Id_Cliente"/>
</joined-subclass>
</class>
</hibernate-mapping>
this is the error that i get:
net.sf.hibernate.WrongClassException: Object with id: 1 was not of the specified subclass:
......................................
at net.sf.hibernate.loader.Loader.instanceAlreadyLoaded(Loader.java:531) at
net.sf.hibernate.loader.Loader.getRow(Loader.java:498) at
net.sf.hibernate.loader.Loader.getRowFromResultSet(Loader.java:213) at
net.sf.hibernate.loader.Loader.doQuery(Loader.java:281) at
net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133) at
net.sf.hibernate.loader.Loader.loadCollection(Loader.java:990) at
net.sf.hibernate.loader.Loader.loadCollection(Loader.java:965) at
net.sf.hibernate.loader.OneToManyLoader.initialize(OneToManyLoader.java:93) at
net.sf.hibernate.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:288) at
net.sf.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:3303) at
net.sf.hibernate.collection.PersistentCollection.forceInitialization(PersistentCollection.java:336) at
net.sf.hibernate.impl.SessionImpl.initializeNonLazyCollections(SessionImpl.java:3156) at
net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:138) at
net.sf.hibernate.loader.Loader.doList(Loader.java:1033) at
net.sf.hibernate.loader.Loader.list(Loader.java:1024) at
net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:854) at
net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1553) at
net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1530) at
net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1522) at
hibernate.conexion.consulta(conexion.java:177) at
_Control__Acceso._jspService(_Control__Acceso.java:80) [/Control_Acceso.jsp] at
com.orionserver[Oracle Containers for J2EE 10g (10.1.3.1.0)
].http.OrionHttpJspPage.service(OrionHttpJspPage.java:59) at
oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:453) at
oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:591) at
oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:515) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.evermind[Oracle
Containers for J2EE 10g (10.1.3.1.0)
].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:711) at
com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0)
].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368) at
com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0)
].server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866) at
com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0)
].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448) at
com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0)
].server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216) at
com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0)
].server.http.HttpRequestHandler.run(HttpRequestHandler.java:117) at com.evermind[Oracle
Containers for J2EE 10g (10.1.3.1.0)
].server.http.HttpRequestHandler.run(HttpRequestHandler.java:110) at
oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at
oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239) at
oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34) at
oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880) at
com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0)
].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303) at
java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira