实体链接查询

有多个一对多或者多对多关系的实体集;如其中一个: 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;
这样就能够查询出符合条件的合同集合;
相关文章
相关标签/搜索