Hibernate Tools:如何生成基类?

时间:2010-12-01 09:26:11

标签: hibernate hibernate-mapping hibernate-tools

我最近安装了Eclipse Helios和Hibernate Tools 3.4.0.Beta1。

我一直在尝试从映射文件生成“基类”,但无法找到如何做。 我们假设我有一个名为Individual.hbm.xml的映射文件。 我希望Hibernate Tools生成2个POJO: - 包含构造函数和getter / setter的BaseIndividual.java - 一个Individual.java,我可以添加“自定义”代码,每当我重新生成POJO时都不会删除它

我花了很多时间寻求信息但从未找到实际的答案。 如果有人可以提供帮助......提前谢谢

2 个答案:

答案 0 :(得分:1)

我在尝试自己做同样的事情时遇到了你的问题(我认为)。

我所做的是在我的hbm.xml配置文件中设置以下内容:

<class
    name="User"
    table="USERS">
    <meta attribute="generated-class">ocs.authentication.UserBase</meta>
    <id
        name="user_id"
        column="USER_ID"
        type="integer">
        <generator class="increment"/>
    </id>
    <property
        name="username"
        column="USERNAME"
        type="string" />
</class>

请注意<meta attribute="generated-class">部分。这将导致生成的类被称为UserBase(在本例中)。 然后,您可以创建另一个类(例如,称为User),它将扩展此基类:

public class User extends UserBase {

    public User() {
    }

    public void SomeFunction() {
    ...
    }

}

这似乎对我有用。 我希望这对你或其他想要做类似事情的人有用。

答案 1 :(得分:0)

我正在寻找一种方法来做到这一点。 我现在正在做的是:

  • 将我的自定义类“Individual.java”保存到另一个包而不更新引用。
  • 生成我的所有pojo(使用表的名称,即个人)
  • 将它们重命名为tablename +“Base”(即IndividualBase)而不更新引用)
  • 然后移动我的自定义类(Individual),从另一个包中扩展pojo。

您是否通过以下方式找到了一种自动方式:

  • 使用自定义模板
  • 编写自己的蚂蚁任务
  • 配置hibernate.reveng.xml

我同意Hibernate Synchronizer做得很好!