實體鏈接查詢

有多個一對多或者多對多關係的實體集;如其中一個: 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;
這樣就能夠查詢出符合條件的合同集合;
相關文章
相關標籤/搜索