3

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

最好的问候,萨斯。

4

1 回答 1

2

您将不得不通过 h​​bm.xml 文件告诉 hibernate 您的扩展类应该如何映射。根据 Hibernate 应该用于多态性的策略,您可能必须分配一个鉴别器值。使用称为“每个类的表”“每个具体类的表”和“每个子类的表”的子类时有 3 种不同的策略。

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

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

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

希望有帮助..

于 2010-11-25T23:18:03.413 回答