2011-08-21 73 views
0

我使用休眠,我需要獲取數據庫的一些數據。 我有一個很多領域的表,我想在不同的地方獲取不同的領域。 我可以使用AliasToBeanResultTransformer創建我自己的類,它只代表我想要獲取的字段。 但我有很多這樣的用法。 我不想發現自己創建了2個成員的許多類只是爲了從數據庫中獲得2個字段。最簡單的方法創建運行結構與休眠

in idea?

謝謝。

回答

0

我真的沒有看到任何其他方式。其他選項糟糕:

  • 使用包含所有可能的領域一類,只有填寫您獲取(其他的人住在空)中的那些:調用代碼怎麼會知道哪些字段被填充,哪些是不?這將成爲維護噩夢
  • 使用Map來存儲所有內容:更糟糕的是:您不知道地圖中可能存在什麼內容,並且代碼將充滿演員表。

如果您有其各自的什麼Foo包含了不同的看法5使用情況,你必須創建5層不同的Foo的DTO。

是否真的有必要只提取一些字段?難道你不能在所有的用例中使用相同的實體類嗎?這是一個性能問題嗎?如果是這樣,你有沒有測量性能問題?大多數情況下,查詢需要時間來執行,因爲查找數據需要一定的時間才能返回,但並不是因爲它返回的數據量。確保你沒有過早優化。

+0

我如何做你的第一個建議,如果我不想獲取的某些字段被定義爲非null? – AAaa

+0

你可以在類中使它們爲空:整數代替int,布爾代替布爾等。調用代碼必須知道這些字段並不總是被填充。 –