有多个一对多或者多对多关系的实体集;如其中一个: java
@Entity @Table(name="t_fund_pact") @PropertyName("资助资金合同") public class FundPact extends BaseEntity { .... @ManyToOne() @PropertyName("项目计划") private ProvideProject provideProject; ...... }
@Entity() @Table(name="t_provide_project") @PropertyName("资助项目计划") public class ProvideProject extends BaseEntity{ /** * 项目是否到期 (10:是) */ @PropertyName("项目是否到期") private Integer isontime; @PropertyName("项目年度") private Integer projYear; /** * 项目编号 */ @PropertyName("项目编号") private String projNo; /** * 项目名称 */ @PropertyName("项目名称") @Column(nullable=false) private String projName; /** * 项目状态(10:新增;20:送审;30:经过;40:退回;50:做废) * */ @PropertyName("项目状态") @Column(nullable=false) private Integer projStatus; /** * 会议文号 */ @PropertyName("会议文号") private String meetNo; /** * 资助金额 */ @PropertyName("资助金额") @Column(nullable=false) private BigDecimal projAmount = new BigDecimal(0); /** * 使用金额 */ @PropertyName("使用金额") private BigDecimal usageAmount= new BigDecimal(0); /** * 剩余金额 */ @Transient private BigDecimal lastAmount= new BigDecimal(0); /** * 冻结金额 */ @PropertyName("冻结金额") private BigDecimal freezeAmount= new BigDecimal(0); /** * 备注 */ @PropertyName("备注") private String projDesc; /** * 录入时间 */ @PropertyName("录入时间") private Date createTime; @ManyToOne @JoinColumn(name="t_fund_type") @PropertyName("所属资金来源") private FundType fundType; @ManyToOne @JoinColumn(name="t_indust_type") @PropertyName("所属行业类型") private IndustType industType; @ManyToOne @JoinColumn(name="t_provide_type") @PropertyName("资助类型") private ProvideType provideType; @ManyToOne @JoinColumn(name="t_provide_object") @PropertyName("资助对象") private FundingObject provideObject; @ManyToOne @JoinColumn(name="t_provide_master") @PropertyName("主管部门") private MasterDepart masterDepart; /** * 录入 人员 */ @ManyToOne() @PropertyName("录入人员") private SysUser createUser;
那么当在页面要求根据资金来源,资助类型,资助对象,主管部门等信息查询合同,该怎么查询呢; sql
一般的方式是链接查询: ide
Stirng Hql = from FundPact fp left join fp.provideProject fpj left join fpj.fundType fpft left join fpj.fundingObject fpobj left join fpj.master fpm where 1=1 and fp.id = '...' and ...
String queryHql = "select fp “+Hql;这样就能够查询出符合条件的合同集合;