【发布时间】:2014-06-28 14:09:34
【问题描述】:
我使用休眠和 SQL 请求来访问数据库中的实体。我不使用急切/延迟加载,因为我更喜欢使用 SQL 请求而不是 ORM。有时我需要获取主实体的子实体,所以接下来我会这样做:
List<ChildEntity> tempList = (List<ChildEntity>) getSession()
.createSQLQuery(SQL_QUERY)
.addScalar(...)
...
.list();
然后做下一步:
Set<ChildEntity> childEntities = new LinkedHashSet<ChildEntity>();
并使用迭代器将列表中的所有元素添加到集合中。然后我将此 childEntities 设置为主实体。这是休眠中的正常方式吗?
还有为什么所有人都建议在一对多关系中使用 Set 而不是 List,但获取实体列表的休眠方法 .list() 返回 List,而不是 Set?
【问题讨论】:
标签: hibernate