我在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。
答案 0 :(得分:2)
你必须告诉hibernate你的扩展类应该如何通过hbm.xml文件进行映射。根据Hibernate应该用于多态的策略,您可能需要分配一个descriminator值。当使用称为“每个表的表”“每个具体类的表”和“每个子类的表”的子类时,有3种不同的策略。
您可以使用<subclass>
或<joined-subclass>
元素
如果您正确定义了hbm.xml文件,则可以使用session.save(new PersonExtended())
或某事。
你可以在这里阅读: http://docs.jboss.org/hibernate/core/3.3/reference/en/html/inheritance.html
希望有所帮助..