left join fetch 用法实例记录

本文展示了如何在Java中利用@ManyToOne注解和FetchType.LAZY属性来实现左连接查询,同时获取关联的BusinessOrganInfo实体。通过自定义的BusinessVersionDao接口,我们实现了通过ID查询BusinessVersion并附带其关联的组织信息。

left join fetch 应用:查找BusinessVersion表中的信息时同时抓取关联的BusinessOrganInfo信息,记录下来以备后用:


BusinessVersion.java

@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="ORGAN_ID")
private BusinessOrganInfo businessOrganInfo;
public BusinessOrganInfo getBusinessOrganInfo() {
return businessOrganInfo;
}
public void setBusinessOrganInfo(BusinessOrganInfo businessOrganInfo) {
this.businessOrganInfo = businessOrganInfo;
}



BusinessOrganInfo.java(这儿只用到了单向的关联抓取,可以不用在该实体中声明@OneToMany了

@OneToMany(mappedBy = "businessOrganInfo", cascade = CascadeType.ALL)
private List<BusinessVersion> businessVersions;
public List<BusinessVersion> getBusinessVersions() {
return businessVersions;
}
public void setBusinessVersions(List<BusinessVersion> businessVersions) {
this.businessVersions = businessVersions;
}


BusinessVersionDao.java

public BusinessVersion findById(BusinessVersion bv){
	List<BusinessVersion> businessVersions = this.findByHql(" from BusinessVersion as b left join fetch b.businessOrganInfo where b.id=?",bv.getId());
	if(businessVersions!=null && businessVersions.size()>0){
		return businessVersions.get(0);
	}else{
		return null;
	}
}


businessVersion.jsp

<tr align="right">
<td style="font-size: 12px">机构:</td>
<td><input name="businessVersion.businessOrganInfo.organName" ...."/><span style="font-family: Arial, Helvetica, sans-serif;"></td>
</tr>







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

txp1993

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值