我想知道如何在使用休眠生成POJO時更改POJO的名稱。更改POJO名稱,同時從休眠中生成
我的表有一個命名約定:FR_和TRN_。 在生成POJO時,我想要刪除FR和TRN並將VO添加到名稱中。
例如,
表名:FR_ACCOUNT_MST
POJO中產生:accountMstVO
感謝, Varun的
我想知道如何在使用休眠生成POJO時更改POJO的名稱。更改POJO名稱,同時從休眠中生成
我的表有一個命名約定:FR_和TRN_。 在生成POJO時,我想要刪除FR和TRN並將VO添加到名稱中。
例如,
表名:FR_ACCOUNT_MST
POJO中產生:accountMstVO
感謝, Varun的
的權利,你必須擴展DelegatingReverseEngineeringStrategy類(休眠-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";
}
}
我假設你正在使用Hibernate工具的能夠從數據庫元數據反向工程領域模型類。在這種情況下,您可能需要按照here的說明執行自定義org.hibernate.cfg.reveng.ReverseEngineeringStrategy
。
或者您也可以通過在加入做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>
該死的..這只是我沒有標記爲問題已回答..感謝您的解決方案..即使我幾個月前需要它.. :) ..並歡迎SOF! – 2011-08-23 17:06:52