更少的列我有11列的表,但我需要得到其中只有2在我的申請,我使用的是春/休眠/ DAO組合。現在我有一個包含所有11個字段的域類,以及映射表中所有11個列的映射文件。我如何使用其中的2個並非全部?掌握休眠
Q
掌握休眠
5
A
回答
10
或者:
用突起 - 臨:沒有補充 - 缺點:不是類型安全的(結果是行的
List
其中每行是一個Object[])
:select f.foo, f.bar from FatEntity f
使用SELECT子句中的構造函數表達式(指定的類不需要是實體或映射到數據庫) - Pro:類型安全解決方案 - Con:更多類,除非您在此情況下重複使用
FatEntity
作爲所有者許多領域將是null
:select new com.acme.FatEntityDetails(f.id, f.foo, f.bar) from FatEntity f
注意,如果
SELECT NEW
子句中指定一個實體類的名字,結果實體實例是在新狀態(沒有持久化標識)。使用映射到同一個表,只有所需的字段的另一個實體 - 臨:這是可以修改和更新一個真正的實體 - 缺點:更多的類。
from LightEntity
之間#2和#3的主要差別是:
2不需要保持器是一個實體在所有。
- #2中的持有者可能是映射到另一個表上的實體。
- 如果#2返回實體,它們處於新狀態(這可能是個問題,或者不是)。
6
嘗試:
SELECT myEntity.one, myEntity.two FROM MyEntity myEntity
你甚至可以這樣做:
SELECT new MyEntityDescription(myEntity.one, myEntity.two) FROM MyEntity myEntity
得到實體描述的列表。
2
如果你從來沒有需要比表中的兩列以上,你可以改變你的Hibernate映射,只有那些需要2列映射到實體類。只映射要在應用程序中訪問的表列。請記住,「忽略」列上的數據庫約束可能會違反,如非空約束,外鍵或唯一約束。
+0
怎麼樣域類,我需要有2場在那裏呢? – 2010-04-01 13:58:43
相關問題
- 1. 掌握Backbone.js的
- 2. 掌握Joomla
- 3. 掌握的JavaScript
- 4. 掌握錯誤
- 5. 掌握LINQ
- 6. 掌握的va_list
- 7. 掌握的WebPack
- 8. 掌握的Excel
- 9. 掌握java的
- 10. 掌握UIScrollView
- 11. 掌握的XPath
- 12. 掌握GetLogicalDriveStrings()
- 13. 掌握API 1.1
- 14. 掌握行情
- 15. 掌握LINQ
- 16. 掌握JavaScript的
- 17. 掌握類名
- 18. 掌握PHP
- 19. 掌握sed的
- 20. 掌握mysqli_query錯誤()
- 21. 掌握在Java中
- 22. MVC3 - 掌握DropDownList的
- 23. 掌握的NaN值
- 24. 掌握AJAX請求
- 25. 如何掌握AngularJS?
- 26. 不掌握的preg_match
- 27. 掌握的Javascript雪
- 28. 掌握的代碼
- 29. 掌握的boost :: ASIO
- 30. 掌握硒和Python
@帕斯卡爾Thivent我不能只留下我的領域類和映射文件中的2個字段? – 2010-04-02 08:05:47
@Gandalf嗯,我以爲有人在使用其他領域。如果不是這樣,那麼你確實可以改變你現在的實體。 – 2010-04-02 08:12:19
感謝您提供多種解決方案和解釋,您怎麼想到的呢?的expirience?看書,培訓?我會接受你的回答。如果你能指向正確的方向,那將是很棒的,比如:網站,例子,書籍。 – 2010-04-02 08:38:53