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