我在Netbeans中生成了映射文件和POJO,而不是自己编写它们。是否可以在继承的类的地方使用派生类?一个例子是这样的:

Person.hbm.xml - mapping file

Person.java - generated class (strategy class per table)

PersonExtended - class that extends Person.java

因此,当我创建一个新对象时:
PersonExtended personextended = new PersonExtended(<parameters>);

我可以调用以下方法:
session.save(personextended) or session.delete(personextended)


这种情况明智吗?还是应该在生成的类中添加所需的任何代码?在此先感谢您的帮助或建议。

- - - -编辑 - - - -

在我的数据库中,我没有可以映射为继承的典型结构。我只想将其他方法与实体的主要java类分开。

最好的祝福,
ass

最佳答案

您将必须告诉hibernate如何通过hbm.xml文件映射扩展类。取决于Hibernate用于多态的策略,您可能必须分配一个描述符值。使用称为“每个类的表”,“每个具体类的表”和“每个子类的表”的子类时,有3种不同的策略。

您可以使用<subclass><joined-subclass>元素在hbm-xml文件中定义子类。

如果正确定义了hbm.xml文件,则可以使用session.save(new PersonExtended())或sth。

您可以在这里阅读:
http://docs.jboss.org/hibernate/core/3.3/reference/en/html/inheritance.html

希望有帮助..

10-04 16:58