2011-07-08 52 views
3

我正在使用eclipse工具生成我的帶註釋的域代碼類。 對於一對多&多對多關係,生成的代碼 用來設置類型的集合。如何將Hibernate集合映射從設置更改爲列表

我想改變它列出或ArrayList中。我應該在reveng.xml中配置

另外,MySQL和Java之間的標準轉換類型是什麼。 我的意思是像varchar被轉換爲字符串,INT爲int等

任何人都可以共享一個非常標準的reveng.xml文件的類型轉換...?

回答

1

你不應該被默認的設置,而不是使用列表。但是,如果你需要它準時,可以幫助你:

public <T> List<T> fromSetToList(Set<T> set) { 
    return new ArrayList<T>(set); 
} 
+2

不需要:List list = new ArrayList (Set ); – djmj

+0

嗯.. !!那會做伎倆.. !! =) – tGilani

1

此外,MySQL和Java之間的標準轉換類型是什麼。我的意思是一樣的varchar轉換爲字符串,整數爲int等

有關的Hibernate映射參考,我發現基本場景下面的鏈接幫助。有關更復雜的映射,請參閱完整的hibernate文檔。

Hibernate Mapping Cheat Sheet

至於名單與套裝,套裝實際上應該是你應該使用集合類型。 List和Set之間的唯一區別是List意味着元素的順序,而Set不允許重複。一個簡單的數據庫記錄集沒有指定的順序,並且沒有重複,因此Set是適當的。只有當你的查詢確實指定了順序和/或你想要某種可能產生重複的UNION時,List纔會有用。

我不知道如何將你的集合變成列表,但我會鼓勵你質疑你是否真的想要這樣做。

+0

嗯,我其實是問如果不知何故休眠工具生成的域代碼爲廣大的其他休眠方法,如getNamedQuery()時,它本身可以用列表,而不是集列表中。 ()return List NOT ... 此外,我想tinyint(1)轉換爲布爾值,而tinyint(5)爲'short'時,我如何在reveng.xml中定義它?甚至有可能嗎? – tGilani

+0

你應該爲每個問題開一個新的問題。 – djmj