gpt4 book ai didi

java - Hibernate - 表的派生 java 类

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:39:37 26 4
gpt4 key购买 nike

我在 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) 或 session.delete(personextended)

?

这种情况是否合理,或者我是否应该在生成的类中添加任何我需要的代码?在此先感谢您的帮助或建议。

--------编辑--------

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

最好的问候,萨斯。

最佳答案

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

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

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

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

希望对您有所帮助..

关于java - Hibernate - 表的派生 java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4279966/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com