似乎这个问题在编程中很受欢迎。
我有一个表,它的字段中有Id和ParentId。
问题是,如何使用Hibernate正确处理像“检索给定节点的所有子节点”这样的任务。
现在,我得到了类似于递归循环的东西,它查找给定了parentId的孩子,但是表中的10000行实在是太疯狂了。
我所能找到的是,人们说这种DB结构不足以处理大量数据,但我已经在这条道路上了。除了用10000个小查询杀死我的数据库之外,我还能做什么?
发布于 2011-08-04 02:35:11
当hibernate对象具有一对多属性时,每次调用获取下一个子对象都会强制执行查询。这就是所谓的“延迟加载”,通过按需抓取它们来提高性能。通过在映射上设置lazy属性,可以强制hibernate在一个查询中“急切地加载”set all。文档中提供了更多信息:http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html#performance-fetching-lazyproperties
https://stackoverflow.com/questions/6935467
复制