Hibernate - 为表派生的java类

时间:2010-11-25 18:33:54

标签: java hibernate hibernate-mapping

我在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类分开。

最诚挚的问候, SASS。

1 个答案:

答案 0 :(得分:2)

你必须告诉hibernate你的扩展类应该如何通过hbm.xml文件进行映射。根据Hibernate应该用于多态的策略,您可能需要分配一个descriminator值。当使用称为“每个表的表”“每个具体类的表”和“每个子类的表”的子类时,有3种不同的策略。

您可以使用<subclass><joined-subclass>元素

在hbm-xml文件中定义子类

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

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

希望有所帮助..