Hibernate many-to-one fetch

张浩BIT 2011-10-10

      上次用来 Eclipselink 的 JPA  优化  Query 需要用到 EclipseLink 自己的 eclipselink.left-join-fetch  特有的hint name 来 实现。   今天在用到 Hibernate 的 一个 many-to-one 的 的时候看到它默认的实现是采用 select fetch 的方式   也就是 在取 many  边的表 后  还会用  select 方式去取  one 那边的表。 从日志中看到很多sql 语句,  联想到应该也有相应的join fetch。  通过 查看 dtd , 果然在 many-to-one 里面有个 fetch  属性,它有两个值: select 和 join。  这个 select 应该是默认的实现。当改成join 后看到 仅有的一个 sql 感觉 or mapping 也还是不错的说。 

<many-to-one name="columnId" class="DataArchitectrueColumn"

column="COLUMN_ID"  lazy="false" fetch="join"/>

 如果 fetch="join" 的话,  这个lazy 配置成  true 也没有啥作用了,  都一把 join 出来了。  

相关推荐