2010-11-17 72 views
0

當我使用hibernate eclipse插件從我的表中生成Java類時,私有字段名稱與我的表名稱相同。有沒有一種方法可以使我的列名改爲相同?hibernate使用字段名稱=數據庫列名稱生成POJO類

例如:

table: User 
column : name (string) 
column : homeAddressId (fk to addressTable) 

生成的類現在的問題是:

User{ 
private String name; 
private Address address; 
} 

我希望它是:

User{ 
private String name; 
private Address homeAddress; 
} 

有沒有設置來做到這一點?

非常感謝您的幫助。

回答

0

在你和hibernate之間的理解中可能存在問題。其實,我看到的是,有一個外鍵與其他表是Address,而不是homeAddress

你還可以發佈其他表(地址)結構。

好像其他表名是Address那麼hibernate插件是綁定創建名稱爲address的屬性,因爲我覺得插件沒有它自己的智能。

+0

該插件已經知道我的表列nam。爲什麼它不能使用該列名稱在我的課程中生成私有字段? – 2010-11-17 15:19:57

+0

@ Sean:你的列名是homeAddressId,但它是一個具有一對多關聯的外鍵,所以它會考慮關聯表而不是列名,而你可以看到正在生成的hbm文件,你會發現在那裏的關鍵參考。 – 2010-11-18 04:16:06

0

在此之前,你的域名應該是你想要的。如果您需要對映射(ORM)進行更多更改,則可能需要在hibernate-conf.xml中執行此操作。生成的類和當前類是相同的。例如,user.xml將是這樣的:

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping> 
<class name="User" table="ADMIN_USER_TBL"> 
<id name="id" type="string" column="ADMIN_USER_ID"> 
     <generator class="assigned" /> 
</id> 
<property name="name" column="FIRST_NAME" /> 
... 
</class> 
</hibernate-mapping> 

然後,有地址的映射:

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping> 
<class name="Address" table="ADDRESS_TBL"> 
<id name="id" type="string" column="ADMIN_USER_ID"> 
     <generator class="assigned" /> 
</id> 
<property name="address" column="ADDRESS1" /> 
<property name="address2" column="ADDRESS2" /> 
<property name="city" column="ADDRESS_CITY" /> 
<property name="state" column="ADDRESS_STATE" /> 
<property name="zip" column="ADDRESS_ZIP" /> 
... 
</class> 
</hibernate-mapping> 

讓我知道這是否有助於! ;)

+0

我正在尋找一種方法讓hibernate生成的類生成專用字段與db列名稱相同。我不想修改生成的類或映射文件。感謝您的回覆,但這不是我正在尋找的。我錯過了什麼嗎? – 2010-11-17 03:01:34