在我的项目中,我们有hbm.xml文件,fetch =“select”表示所有关系表的一对多。
对于前: 一所学校有很多教室,一间教室有很多孩子
所以在我的hbm文件中
school.hbm.xml
< set name =“classrooms” lazy =“false”fetch =“select”>
classroom.hbm.xml
< set name =“children” lazy =“false”fetch =“select”>
有一种情况我只想获取基于教室div ='A'的学校列表。但是由于这种映射,hibernate正在为教室做选择,在这种情况下我不想要。
请帮助我如何避免在课堂上进行不必要的选择。无论如何都要覆盖此获取模式并仅与学校和教室联系,不与孩子一起
我尝试了多种选择,但没有运气。 非常感谢您的投入。
答案 0 :(得分:0)
不 - 我相信你不能覆盖EAGER映射,既不使用查找,查询也不能使用条件查询。例如,见StackOverflow thread。覆盖LAZY虽然容易。
hbm.xml文件是fetch ="选择"对于所有关系表的一对多
...似乎是一个糟糕的默认选择 - 这就是为什么相反的是Hibernate自己的默认选择。
通常,在映射中保持低级和懒惰是一种很好的做法,并在您渴望时使用查询。