有两个表,主表 A,副表 B,表间关系为一对一(id 关联)
对A来说对应的B允许为空Query q = session.createQuery("from A left join A.b where A.age>10");
return q.list();执行时,生成一个联合查询,但对于 A 中对应 B 为空的每一个记录,会自动对 B 进行一次查询【对于 A 中对应 B 为空的每一个记录,会自动对 B 进行一次查询】??是什么原因
对A来说对应的B允许为空Query q = session.createQuery("from A left join A.b where A.age>10");
return q.list();执行时,生成一个联合查询,但对于 A 中对应 B 为空的每一个记录,会自动对 B 进行一次查询【对于 A 中对应 B 为空的每一个记录,会自动对 B 进行一次查询】??是什么原因
改了后..这样就当你用到这些数据时,它才会自动对 B 进行一次查询,如果是fetch=FetchType.EAGER,就默认查询
表A的
@OneToOne(fetch=FetchType.LAZY, mappedBy="a")表B的
@OneToOne(fetch=FetchType.LAZY)@PrimaryKeyJoinColumn
Query q = session.createQuery("from A where A.age>10");
return q.list();也出现同样的问题
@OneToOne(fetch=FetchType.LAZY, mappedBy="a")
表B的
@OneToOne(fetch=FetchType.LAZY)@PrimaryKeyJoinColumn
@JoinColumn(name = "A_ID")
private AVO aVO;