繁体   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