簡體   English   中英

調用休眠查詢list()方法會產生錯誤

[英]Calling hibernate query list() method generates errors

我正在嘗試調試某人的代碼。 但是我不是冬眠專家,所以我想向您尋求幫助。

我正在嘗試從數據庫中檢索作業列表,但是似乎存在問題。

在實體類中:

//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,但是仍然會發生相同的錯誤。

緩存與此有關嗎? 或者,這里似乎是什么問題? 我已經一無所知了。

預先感謝您的回答...

嘗試以下代碼;

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();
    }

您未設置位置參數grpId的值,這可能是問題所在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM