我有一個類DocMovement這樣的:休眠 - org.hibernate.QueryException:無法解析屬性:
@Entity
@Table(name = "DOC_MVMNT")
public class DocMovement {
@Id
@GeneratedValue
@Column(name = "MVMNT_ID")
private int mvmnt_id;
@ManyToOne
@JoinColumn(name = "BARCODE")
public DocMaster docMaster;
// other fields and getters setters
}
的DocMaster類是這樣的:
@Entity
@Table(name="DOC_MASTER")
public class DocMaster {
@Id
@NotNull
@Column(name = "BARCODE")
private String barcode;
@Column(name = "DOC_NO")
private String docNo ;
@Column(name="DOC_TYPE")
private String docType;
@Column(name="STATUS")
private String status;
// other fields and getters setters
}
當我試圖運行下面的代碼:
Criteria criteria = session.createCriteria(DocMovement.class,"documentMovement");
criteria.add(Restrictions.eq("documentMovement.recipientDetail.empId", empId));
criteria.add(Restrictions.eq("documentMovement.isCurrent", true));
criteria.add(Restrictions.ne("documentMovement.docMaster.status",FMSConstants.CLOSED_STATUS));
criteria.add(Restrictions.ne("documentMovement.docMaster.status",FMSConstants.DISPOSED_STATUS));
List<DocMovement> documentsHeld = (List<DocMovement>) criteria.list();
然後我得到以下異常:
[org.hibernate.QueryException: could not resolve property:
docMaster.status of: com.fms.persistence.DocMovement] with root cause
org.hibernate.QueryException: could not resolve property:
docMaster.status of: com.fms.persistence.DocMovement
還有其他情況下,我嘗試使用如上所示的條件進行查詢,查詢運行良好,但我無法理解我在這種情況下做錯了什麼。我也嘗試過使用eager fetch,之前我沒有使用別名,所以我嘗試使用別名。
請幫我解決問題!!!
這工作,Thanx洛特,但我不明白爲什麼,因爲我沒有按照你在其他情況下建議,但它工作正常。爲什麼在這種情況下,我不得不給別名。 –