ok,
I've changed a few things but ill try again. I want to save an employee to the db. My employee mapping file looks likes this:
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping package="nl.jobs.businessobjects">
<class name="Employee" table="employee">
<id name="id" column="id">
<generator class="increment"/>
</id>
<property name="firstname" column="firstname" />
<property name="lastname" column="lastname" />
<property name="direct" column="direct" />
<property name="nlnumber" column="nlnumber" />
<set name="expertsGroup" table="expertsgroup_employee">
<key column="employee_id"/>
<many-to-many column="expertsgroup_id" class="nl.jobs.businessobjects.ExpertsGroup"/>
</set>
</class>
</hibernate-mapping>
My expertsgroup mapping looks like this:
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >
<hibernate-mapping package="nl.jobs.businessobjects">
<class name="ExpertsGroup" table="expertsgroup">
<id name="id" column="id">
<generator class="increment"/>
</id>
<property name="name" column="name" />
<set name="members" table="expertsgroup_employee">
<key column="expertsgroup_id"/>
<many-to-many column="employee_id" class="nl.jobs.businessobjects.Employee"/>
</set>
</class>
</hibernate-mapping>
The code for inserting a new employee looks like this:
Code:
try
{
// create a new object
Employee employee = new Employee();
employee.setFirstname("One-punch");
employee.setLastname("Mickey");
employee.setDirect('J');
java.util.Set xpgSet = new HashSet();
xpgSet.add(new ExpertsGroup("Test XPG"));
employee.setExpertsGroup(xpgSet);
result = HibernateUtil.createBusinessObject(employee);
}
catch (HibernateException ex)
{
ex.printStackTrace();
}
This result in :
net.sf.hibernate.HibernateException: identifier of an instance of nl.jobs.businessobjects.Employee altered from 7 to null
at net.sf.hibernate.impl.SessionImpl.checkId(SessionImpl.java:2670)
at net.sf.hibernate.impl.SessionImpl.flushEntity(SessionImpl.java:2493)
at net.sf.hibernate.impl.SessionImpl.flushEntities(SessionImpl.java:2486)
at net.sf.hibernate.impl.SessionImpl.flushEverything(SessionImpl.java:2281)
at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2260)
at nl.jobs.util.HibernateUtil.createBusinessObject(HibernateUtil.java:45)
at nl.jobs.util.HibernateTestClient.createEmployee(HibernateTestClient.java:99)
at nl.jobs.util.HibernateTestClient.main(HibernateTestClient.java:33)
Process exited with exit code 0.
This error also occurs once when i fech a list of employees and iterate over them.
Hopefully this is enough to give me a clue...
grtz
H[/code]