我通過hbm2java逆向工程生成pojos。而對於註解名稱變成ejb3 =「true」。休眠逆向工程-annotations大寫的名字
但我的問題是@Table(name =「EMPLOYEE」)我想@Table(name =「Employee」)。反向工程代碼不是由我寫的。我們正在xpand生成pojos和Ejb3 *****。ftl s用於註釋。
@Entity @Table(name = 「EMPLOYEE」)
公共類Employee {
在此先感謝,如果他們投入反引號
我通過hbm2java逆向工程生成pojos。而對於註解名稱變成ejb3 =「true」。休眠逆向工程-annotations大寫的名字
但我的問題是@Table(name =「EMPLOYEE」)我想@Table(name =「Employee」)。反向工程代碼不是由我寫的。我們正在xpand生成pojos和Ejb3 *****。ftl s用於註釋。
@Entity @Table(name = 「EMPLOYEE」)
公共類Employee {
在此先感謝,如果他們投入反引號
案件敏感的表名稱只作檢測。 您可以使用hibernate.reveng.xml
文件來控制Hibernate文檔的hbm2java
(請參閱Controlling reverse engineering)的逆向工程過程。
默認實現不支持區分大小寫的名稱,因此您必須提供您自己的org.hibernate.cfg.reveng.dialect.MetaDataDialect
,您必須在其中實施Iterator getTables(String catalog, String schema, String table);
才能返回區分大小寫的表名稱,即反引號中的表名稱。
如果您這樣做,您可能還必須提供自定義org.hibernate.cfg.reveng.ReverseEngineeringStrategy
以從「區分大小寫」表名中生成正確的類名稱和標識符。
是的,你是正確的,因爲一些保留的名稱問題,我們正在使用back ticks作爲名稱。但是我不能引入reveng.xml,因爲它在遺留代碼中會有點激進。你的意思是說,默認的註釋將始終是大寫?要添加回刻度我編輯ftl文件{pojo.generateJoinColumnsAnnotation(property,cfg).replaceFirst(「= \」「,」= \「'」).replaceAll(「\」,「,」}這樣的東西 – adroit 2014-12-05 06:24:29
不知道hibernate工具是否總是默認創建大寫表名,這是我迄今爲止看到的。有一個未記錄的屬性'hibernate.globally_quoted_identifier'參見https://hibernate.atlassian.net/browse/HHH- 5673.我個人不會信賴這個,我可以想到的一個辦法是在ftl文件中定義大寫表名和區分大小寫的表名之間的映射,但我從來沒有試過了。 – andih 2014-12-05 08:27:08