Hi:
I have a base class called Person
Code:
public class Person
{
private String ID;
private String attr1;
private String attr2;
public String getID()
{
return ID;
}
public void setID(String ID)
{
this.ID = ID;
}
public String getAttr2()
{
return attr2;
}
public void setAttr2(String attr2)
{
this.attr2 = attr2;
}
public String getAttr1()
{
return attr1;
}
public void setAttr1(String attr1)
{
this.attr1 = attr1;
}
}
It has a sub class called Manager
Code:
public class Manager extends Person
{
private String attr3;
public String getAttr3()
{
return attr3;
}
public void setAttr3(String attr3)
{
this.attr3 = attr3;
}
}
And my hibernate.xml is as follows:
<hibernate-mapping>
<class name="Person" table="Person">
<id name="ID" type="string">
<column name="ID" length="32"/>
<generator class="uuid.hex"/>
</id>
<property name="attr1" column="attr1" type="string"/>
<property name="attr2" column="attr2" type="string"/>
</class>
</hibernate-mapping>
I do not want to create a table for the subclass but want to store the subclass' (Manager's) data (only attr1 and attr2) in the superclass' (Person's) table.
So, I tried to run the following code,
Code:
public static void main(String[] args)
{
.
.
Session session = sessionFactory.openSession();
Manager manager = new Manager();
session.save(manager);
session.flush();
session.connection().commit();
session.close();
}
But I get the following exception:
net.sf.hibernate.MappingException: No persister for: Manager
at net.sf.hibernate.impl.SessionFactoryImpl.getPersister(SessionFactoryImpl.java:344)
at net.sf.hibernate.impl.SessionImpl.getClassPersister(SessionImpl.java:2574)
at net.sf.hibernate.impl.SessionImpl.getPersister(SessionImpl.java:2581)
at net.sf.hibernate.impl.SessionImpl.saveWithGeneratedIdentifier(SessionImpl.java:725)
at net.sf.hibernate.impl.SessionImpl.save(SessionImpl.java:717)
Is what I am trying even feasible? If yes, please enlighten me.
Thank you,
Om