【问题标题】:Change POJO name while generating from hibernate从休眠状态生成时更改 POJO 名称
【发布时间】:2011-03-10 04:53:52
【问题描述】:

我想知道在使用 hibernate 生成 POJO 时如何更改它的名称。

我的表有一个命名约定:FR_ 和 TRN_。 在生成 POJO 时,我希望删除 FR 和 TRN 并将 VO 附加到名称。

例如,

表名:FR_ACCOUNT_MST

要生成的POJO:accountMstVO

谢谢, 瓦伦

【问题讨论】:

    标签: hibernate naming-conventions hibernate-mapping pojo


    【解决方案1】:

    对,你必须扩展 DelegatingReverseEngineeringStrategy 类(hibernate-tool.jar lib)并覆盖 tableToClassName 方法。

    下面的代码会将 FR_ACCOUNT_MST 重命名为 FR_ACCOUNT_MSTVO。

    我让你使用一些正则表达式来获得想要的结果。

    变量className包含包+类名(即com.mycompany.project.hibernate.FR_ACCOUNT_MST)

    来源:http://www.cereslogic.com/pages/2008/08/05/hibernate-tools-tips-for-reverse/

    package com.altenor.coffre.generated;
    
    import org.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy;
    import org.hibernate.cfg.reveng.ReverseEngineeringStrategy;
    import org.hibernate.cfg.reveng.TableIdentifier;
    
    public class CoffreReverseEngineeringStrategy extends DelegatingReverseEngineeringStrategy {
    
        public CoffreReverseEngineeringStrategy(ReverseEngineeringStrategy delegate) {
            super(delegate);
        }
    
        //add Base before class name
        public String tableToClassName(TableIdentifier tableIdentifier) {
              String className = super.tableToClassName(tableIdentifier);
              return className+"VO";
            }
    }
    

    【讨论】:

    • 该死..这是我唯一没有标记为已回答的问题..感谢您的解决方案..尽管几个月前我需要它.. :).. 欢迎来到SOF!
    【解决方案2】:

    或者您可以通过在 hibernate.reveng.xml 文件中添加每个 pojo 的名称来实现:

    <hibernate-reverse-engineering>
      <table-filter match-schema="CO" match-name="FR_ACCOUNT_MST"/>
    
      <table name="FR_ACCOUNT_MST" schema="CO" class="com.bonables.co.hibernate.pojo.accountMstVO" />
    
    </hibernate-reverse-engineering>
    

    【讨论】:

      【解决方案3】:

      我假设您正在使用 Hibernate Tool 从数据库元数据逆向工程领域模型类的能力。在这种情况下,您可能希望按照 here 的说明实现自定义 org.hibernate.cfg.reveng.ReverseEngineeringStrategy

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-15
        • 2012-05-12
        • 1970-01-01
        • 2010-11-22
        • 1970-01-01
        • 2011-02-04
        • 2018-06-12
        • 1970-01-01
        相关资源
        最近更新 更多