Hibernate获取关联策略

时间:2014-09-25 13:29:16

标签: java hibernate

@Entity
public class A {

 @Id
 private Long id;

 @OneToMany(cascade = ALL, orphanRemoval = true)
 @JoinColumn(name = "aId")
 @Fetch(FetchMode.SELECT)
 private List<B> bList;

}

@Entity
public class B {

 @Id
 private Long id;

 private Long aId;

 @OneToMany(cascade = ALL, orphanRemoval = true)
 @JoinColumn(name = "bId")
 @Fetch(FetchMode.JOIN)
 private List<C> cList;

}

@Entity
public class C {

 @Id
 private Long id;

 private Long bId;

}

当加载类型A的对象(session.get(A.class,1L))时,将忽略为B中的C对象列表指定的连接fechmode。执行3个查询: 选择一个 ... 选择B ...... 选择C ......

当加载类型B的对象(session.get(B.class,1L))时,加入fetchmode并且只执行1个查询

选择B ...     左外连接C ...

我想要的是在加载A类对象时只需要2个查询: 选择一个 ... 选择B ......     左外连接C ...

任何人都知道如何实现这一目标?

0 个答案:

没有答案