【问题标题】:Hibernate Tools : how to generate base classes?Hibernate 工具:如何生成基类?
【发布时间】:2010-12-01 09:26:10
【问题描述】:

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

我一直在尝试从映射文件生成“基类”,但不知道该怎么做。 假设我有一个名为 Individual.hbm.xml 的映射文件。 我希望 Hibernate Tools 生成 2 个 POJO: - 包含构造函数和 getter/setter 的 BaseIndividual.java - 一个 Individual.java,我可以在其中添加在我重新生成 POJO 时不会被删除的“自定义”代码

我花了很多时间寻找信息,但从未找到切实可行的答案。 如果有人可以提供帮助...在此先感谢

【问题讨论】:

    标签: hibernate hibernate-mapping hibernate-tools


    【解决方案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>
    

    注意&lt;meta attribute="generated-class"&gt; 部分。这将导致生成的类被称为 UserBase(在这种情况下)。 然后,您可以创建另一个将扩展此基类的类(例如称为 User):

    public class User extends UserBase {
    
        public User() {
        }
    
        public void SomeFunction() {
        ...
        }
    
    }
    

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

    【讨论】:

      【解决方案2】:

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

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

      您是否找到了一种自动的方法,例如:

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

      我同意 Hibernate Synchronizer 做得很好!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-04
        • 2012-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多