我在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
希望有帮助..