hibernate fetch="join"

hibernate fetch="join"
多对一属性,设置fetch='join'时.

1.hql查询时,要根据lazy是否等于true来,确定fetch='join'是否生效。如果lazy=true,这不会生效(和没有设置fetch='join'一样),需要你在hql语句中明确写明left join fetch 这个属性。如果lazy=false,则会生成再生成一个select语句单独查询把(和fetch=join的语意不符),查询的结果放到这个实体属性中。

2.如果是session方法(如get()会hibernate.initiaiztion())读取这个实体(entity1)时,都会生成对应的关联查询sql语句,把这个实体属性(property1)关联的表的信息一起查出来,存放到实体属性中。

3.并且其他实体(entity2)把本实体(entity1)作为他的属性时,初始化entity2实体的entity1属性时其property1也会一并加载。