Вызов метода списка запросов hibernate приводит к ошибкам - PullRequest
1 голос
/ 01 апреля 2011

Я пытаюсь отладить чьи-то коды.Но я не специалист по hibernate, поэтому я прошу вашей помощи по этому поводу.

Я пытаюсь получить список заданий из базы данных, но, похоже, проблема.

В классе сущности:

//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 () перед созданием запроса, а также попытался изменить тип каскадаидентификатор задания от REFRESH до PERSIST, но все равно возникают ошибки.

Имеет ли кеш какое-либо отношение к этому?Или в чем здесь проблема?Я уже не в курсе.

Заранее спасибо за ответы ...

1 Ответ

0 голосов
/ 01 апреля 2011

попробуйте следующий код:

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, что может быть проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...