hibernate outer join 的问题,解决立马结贴
hibernate 查询的时候 OneToMany 如何让Criteria 查询自动为left outer join
具体情况如下
实体类
public class BaseStation extends BaseEntity{
private String stationId;
private District districts;
private List<DeviceViolation> deviceViolations = new ArrayList<DeviceViolation>();
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "districtcode")
public District getDistricts() {
return this.districts;
}
@Fetch(FetchMode.JOIN)
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name="stationid")
public List<DeviceViolation> getDeviceViolations() {
return deviceViolations;
}
}
通过 Criteria查询,没有查询条件
打印出来的sql为
select
this_.stationid as stationid0_2_,
deviceviol2_.stationid as stationid4_,
deviceviol2_.deviceid as deviceid4_,
deviceviol2_.deviceid as deviceid2_0_,
deviceviol2_.stationid as stationid2_0_,
deviceviol2_.checkcrosslines as checkcro2_2_0_,
deviceviol2_.checkmaxspeed as checkmax3_2_0_,
deviceviol2_.checkminspeed as checkmin4_2_0_,
deviceviol2_.checkoccupy as checkocc5_2_0_,
deviceviol2_.checkoppsite as checkopp6_2_0_,
deviceviol2_.checkyellowplate as checkyel7_2_0_,
deviceviol2_.deviceip as deviceip2_0_,
deviceviol2_.maxspeed as maxspeed2_0_,
deviceviol2_.minspeed as minspeed2_0_,
deviceviol2_.speedratio as speedratio2_0_,
deviceviol2_.updatedate as updatedate2_0_,
deviceviol2_.updateuser as updateuser2_0_,
deviceviol2_.workmode as workmode2_0_,
district3_.districtcode as district1_5_1_,
district3_.districtname as district2_5_1_
from
WZCFUSR.basestations this_,
WZCFUSR.deviceviolation deviceviol2_,
WZCFUSR.districts district3_
where
this_.stationid=deviceviol2_.stationid(+)
and this_.districtcode=district3_.districtcode(+)
为什么sql不是用 left outer join
我以前做的一个项目我记得打印的sql 都是用 left outer join的
怎么做才能让生成的sql 用 left outer join 呢
望各位大侠指点迷津!