Hibernate 3.2
MySQL 5
I have the abstract class "Ressource" and the Sub-Class "Raum" and "Gegenstand". When i try to save it, this error shows up:
Code:
Exception in thread "main" org.hibernate.MappingException: Cannot use identity column key generation with <union-subclass> mapping for: uebung9bPackage.Gegenstand
Here is the Ressource-Class:
Code:
public abstract class Ressource {
private long id;
private String name;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Ressource.hbm.xml
Code:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="uebung9bPackage.Ressource" abstract="true" >
<id name="id" column="id" type="long">
<generator class="native"/>
</id>
<property name="name" column="name" type="string"/>
<union-subclass name="uebung9bPackage.Raum" table="raum">
<property name="gebaeude" column="gebaeude" type="string"/>
</union-subclass>
<union-subclass name="uebung9bPackage.Gegenstand" table="gegenstand">
<property name="wert" column="wert" type="string"/>
</union-subclass>
</class>
</hibernate-mapping>
Class Gegenstand:
Code:
package uebung9bPackage;
public class Gegenstand extends Ressource{
private String wert;
public String getWert() {
return wert;
}
public void setWert(String wert) {
this.wert = wert;
}
}
Class Raum:
Code:
package uebung9bPackage;
public class Raum extends Ressource{
private String gebaeude;
public String getGebaeude() {
return gebaeude;
}
public void setGebaeude(String gebaeude) {
this.gebaeude = gebaeude;
}
}
Perhaps a database-error? Here are my tables:
Code:
CREATE TABLE `raum` (
`id` BIGINT NOT NULL ,
`name` VARCHAR( 50 ) NOT NULL ,
`gebaeude` VARCHAR( 50 ) NOT NULL
) TYPE = innodb;
Code:
CREATE TABLE `gegenstand` (
`id` BIGINT NOT NULL ,
`name` VARCHAR( 50 ) NOT NULL ,
`wert` VARCHAR( 50 ) NOT NULL
) TYPE = innodb;
Can someone help me please?