Hibernate version: 3.2
Name and version of the database you are using:Mysql 5.0.22
classes:
Company.java
Employee.java(has tow subclasses)
|
|--HourlyEmployee.java
|
|
|--SalariedEmployee.java
The relationship between Company.java and Employee.java is one-to-many
I want to mapping them by the strategy of Table per concrete class, using implicit polymorphism
Employee.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="ergal.HourlyEmployee" table="HOURLY_EMPLOYEES" polymorphism="implicit">
<id name="id" type="long" column="HOURLY_EMPLOYEE_ID">
<generator class="native"/>
</id>
<property name="name" column="NAME" type="string"/>
<property name="rate" column="RATE" type="double"/>
<many-to-one
name="company"
column="COMPANY_ID"
class="mypack.Company"
/>
</class>
<class name="ergal.SalariedEmployee" table="SALARUED_EMPLOYEES" polymorphism="implicit">
<id name="id" type="long" column="SALARUED_EMPLOYEE_ID">
<generator class="native"/>
</id>
<property name="name" column="NAME" type="string"/>
<property name="salary" column="SALARY" type="double"/>
<many-to-one
name="company"
column="COMPANY_ID"
class="mypack.Company"
/>
</class>
<any name="employee" meta-type="string" id-type="long">
<meta-value value="HE" class="ergal.HourlyEmployee"/>
<meta-value value="SE" class="ergal.SalariedEmployee"/>
<column name="EMPLOYEE_TYPE"/>
<column name="EMPLOYEE_ID"/>
</any>
</hibernate-mapping>
when I run hbm2ddl
Exception: org.hibernate.InvalidMappingException: Could not pars
e mapping document from resource ergal/Employee.hbm.xml
how to mapping them by the strategy of Table per concrete class, using implicit polymorphism correctly
THX