我試圖調試某人的代碼。但我不是休眠的專家,所以我要求你提供這方面的幫助。調用休眠查詢列表()方法會產生錯誤
我想從數據庫中檢索作業列表,但似乎有問題。
在實體類:
//JobEntity
@ManyToOne(cascade={CascadeType.MERGE, CascadeType.REFRESH}, fetch=FetchType.EAGER)
@JoinColumn(name="job_id", nullable=false)
private Job jobId;
@Column(name="grp_id")
private String grpId;
@Id
@Column(name="id", nullable=false)
@GenericValue(strategy=GenerationType.SEQUENCE,generator="JOB_ENTITY_SEQUENCE")
private Integer id;
//DaoImpl
public Collection<JobEntity> getJobsByGrpId(String grpId){
Query q = getCurrentSession().createQuery("from JobEntity je where je.grpId= :grpId order by je.id");
q.setString("grpId", grpId);
return q.list();
}
而我得到的錯誤是這樣的:
No row with the given identifier exists: [Job#:jb4567]...
但在數據庫中,表中有數據。
我不確定這是什麼原因。
我試着在創建查詢之前放置一個getCurrentSession.flush()語句,並且我也嘗試將作業ID的級聯類型從REFRESH更改爲PERSIST,但仍會發生相同的錯誤。
緩存與此有什麼關係? 或者,這裏似乎是什麼問題?我已經無能爲力了。
在此先感謝您的答案......
有人嗎?順便說一下,即時通訊在一個64位環境中使用postgreSQL 9.0 ..這無關緊要(關於這個問題),ryt? – fleur 2011-04-01 14:29:01