更少的列我有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. 掌握错误
- 2. 掌握行情
- 3. 掌握sed的
- 4. 掌握GetLogicalDriveStrings()
- 5. 掌握java的
- 6. 掌握类名
- 7. 掌握Joomla
- 8. 掌握的Excel
- 9. 掌握PHP
- 10. 掌握JavaScript的
- 11. 掌握的va_list
- 12. 掌握的XPath
- 13. 掌握子查询
- 14. 不掌握的preg_match
- 15. 掌握在Java中
- 16. 掌握的boost :: ASIO
- 17. 掌握mysqli_query错误()
- 18. 掌握的代码
- 19. 如何掌握wordpress主题?
- 20. 掌握模拟工具
- 21. 掌握使用MySQL的SUBSTRING_INDEX
- 22. 掌握预加载图像
- 23. 随时掌握技术
- 24. 掌握的Javascript/jQuery的
- 25. 掌握详细导航?
- 26. 掌握laravel正道5.4
- 27. 掌握的DataBinder派遣
- 28. 帮助您掌握node.js
- 29. 掌握袖珍电脑wince
- 30. 并不总是掌握签
@帕斯卡尔Thivent我不能只留下我的领域类和映射文件中的2个字段? – 2010-04-02 08:05:47
@Gandalf嗯,我以为有人在使用其他领域。如果不是这样,那么你确实可以改变你现在的实体。 – 2010-04-02 08:12:19
感谢您提供多种解决方案和解释,您怎么想到的呢?的expirience?看书,培训?我会接受你的回答。如果你能指向正确的方向,那将是很棒的,比如:网站,例子,书籍。 – 2010-04-02 08:38:53