避免从Hibernate

时间:2015-09-02 22:41:54

标签: hibernate

在我的项目中,我们有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正在为教室做选择,在这种情况下我不想要。

请帮助我如何避免在课堂上进行不必要的选择。无论如何都要覆盖此获取模式并仅与学校和教室联系,与孩子一起

我尝试了多种选择,但没有运气。 非常感谢您的投入。

1 个答案:

答案 0 :(得分:0)

不 - 我相信你不能覆盖EAGER映射,既不使用查找,查询也不能使用条件查询。例如,见StackOverflow thread。覆盖LAZY虽然容易。

  

hbm.xml文件是fetch ="选择"对于所有关系表的一对多

...似乎是一个糟糕的默认选择 - 这就是为什么相反的是Hibernate自己的默认选择。

通常,在映射中保持低级和懒惰是一种很好的做法,并在您渴望时使用查询。