Here are the basics of each class:
Geodetic:
Code:
public class Geodetic {
private Long id = null;
private double longitude = 0;
private double latitude = 0;
private double height = 0;
}
Code:
<hibernate-mapping package="dao.coordinate">
<class name="Geodetic" table="CRD_Geodetic">
<id name="id" column="id">
<generator class="native" />
</id>
<property name="latitude" type="double"/>
<property name="longitude" type="double"/>
<property name="height" type="double"/>
</class>
</hibernate-mapping>
ClassA:
Code:
public class ClassA{
private Long id = null;
private Geodetic location = new Geodetic();
}
Code:
<hibernate-mapping package="dao.package1">
<class name="ClassA" table="CRD_ClassA">
<id name="id" column="id">
<generator class="native" />
</id>
<many-to-one name="location" class="dao.coordinate.Geodetic" cascade="all" lazy="false"/>
</class>
</hibernate-mapping>
ClassB:
Code:
public class ClassB{
private Long id = null;
private Geodetic location = new Geodetic();
}
Code:
<hibernate-mapping package="dao.package1">
<class name="ClassB" table="CRD_ClassB">
<id name="id" column="id">
<generator class="native" />
</id>
<many-to-one name="location" class="dao.coordinate.Geodetic" cascade="all" lazy="false"/>
</class>
</hibernate-mapping>
A stack trace of the error with this configuration is:
Code:
1 13.02.2008 10:40:51.738 1,000 SEVERE Thread[ULC Communication Controller Thread,6,main] com.ulcjava.base.server.ULCSession processRequests got exception while processing [org.hibernate.HibernateException: identifier of an instance of dao.coordinate.Geodetic was altered from 57 to 33
at org.hibernate.event.def.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:58)
at org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:157)
at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:113)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:196)
at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:35)
at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1114)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at emst.dao.player.PlayerManager.getSimulatedPlayers(PlayerManager.java:146)
at emst.sim.SimulationManager.generateSimulatedPlayer(SimulationManager.java:489)
at emst.dao.package1.ClassA.initialize(ClassA.java:207)
at emst.dao.package1.ClassAFactory.buildFromXML(ClassAFactory.java:84)
at emst.dao.xmlconversion.ClassAConverter.startElement(ClassAConverter.java:144)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at emst.dao.xmlconversion.ClassAConverter.parseEntitiesFromXMLFile(ClassAConverter.java:123)
at emst.dao.xmlconversion.ClassAConverter.convertEntitiesFromXMLFile(ClassAConverter.java:85)
at emst.sim.SimulationManager.addExerciseModule(SimulationManager.java:413)
at emst.sim.SimulationManagerFactory.createManager(SimulationManagerFactory.java:63)
at emst.sim.JointExercise.<init>(JointExercise.java:63)
at emst.sim.JointExerciseFactory.createJointExercise(JointExerciseFactory.java:132)
at emst.sim.JointExerciseFactory.createJointExercise(JointExerciseFactory.java:85)
at emst.sim.JointExerciseFactory.createJointExercise(JointExerciseFactory.java:171)
at emst.portal.scheduler.individual.IndividualExerciseScheduler.join(IndividualExerciseScheduler.java:279)
at emst.portal.scheduler.individual.IndividualExerciseScheduler.nextFrame(IndividualExerciseScheduler.java:196)
at emst.portal.scheduler.individual.IndividualSchedulerGeneralInfoView$5.actionPerformed(IndividualSchedulerGeneralInfoView.java:410)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.ulcjava.base.shared.internal.ReflectionUtilities.invokeMethod(ReflectionUtilities.java:29)
at com.ulcjava.base.application.ULCProxy.dispatchEvent(ULCProxy.java:128)
at com.ulcjava.base.application.ULCProxy.processActionEvent(ULCProxy.java:363)
at com.ulcjava.base.application.ULCProxy$ULCProxyDispatcher.processActionEvent(ULCProxy.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.ulcjava.base.shared.internal.ReflectionUtilities.invokeMethod(ReflectionUtilities.java:29)
at com.ulcjava.base.application.ULCProxy.a(ULCProxy.java:339)
at com.ulcjava.base.application.ULCProxy.handleEvent(ULCProxy.java:146)
at com.ulcjava.base.application.ULCProxy$ULCProxyDispatcher.handleEvent(ULCProxy.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.ulcjava.base.shared.internal.ReflectionUtilities.invokeMethod(ReflectionUtilities.java:29)
at com.ulcjava.base.application.ULCProxy.d(ULCProxy.java:172)
at com.ulcjava.base.application.ULCProxy.handleRequest(ULCProxy.java:185)
at com.ulcjava.base.server.ULCSession.a(ULCSession.java:230)
at com.ulcjava.base.server.ULCSession.processRequests(ULCSession.java:212)
at com.ulcjava.base.development.DevelopmentContainerAdapter.processRequests(DevelopmentContainerAdapter.java:0)
at com.ulcjava.base.development.DevelopmentConnector.sendRequests(DevelopmentConnector.java:12)
at com.ulcjava.base.client.UISession$k_.run(UISession$k_.java:71)
at java.lang.Thread.run(Unknown Source)
]