спящий список - PullRequest
       3

спящий список

1 голос
/ 05 марта 2012

Я получаю сообщение об ошибке в Hibernate (я еще не слишком знаком с API). Вот мой код ниже:

public void retrieveToDB(String data){
    Session session = HibernateUtil.getSessionFactory().openSession();
    session.beginTransaction();

    Query q = session.createQuery("Select empName from Employee where empName = :emp");
    q.setParameter("emp", data);
    List result = q.list();

    Iterator iter = result.iterator();

    while(iter.hasNext()){
        Employee emp = (Employee) iter.next();
        String e = emp.getEmpName();
        System.out.println("THIS IS " +e);
    }



}     

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

  Exception in thread "Thread-0" java.lang.ClassCastException: java.lang.String cannot be cast to com.datadistributor.main.Employee

Я пытался найти некоторые учебники по работе со списками в Hibernate, но я продолжаю находить одни и те же (бесполезные) вещи. Пока что ничего из того, что я пробовал, не сработало, надеюсь, кто-нибудь мне поможет.

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

1 Ответ

3 голосов
/ 06 марта 2012

Я думаю, что вы хотите сделать что-то более близкое к этому:

public void retrieveToDB(String data) {
    Session session = HibernateUtil.getSessionFactory().openSession();
    // I don't think you need to start a transaction just to do a SELECT statement
    //session.beginTransaction();

    Query q = session.createQuery("SELECT e from Employee e where e.empName = :empname");
    q.setParameter("empname", data);
    List results = (List) q.list();

    String test = null;
    Iterator iter = results.iterator();

    while (iter.hasNext()) {
        Employee emp = (Employee) iter.next();
        test = emp.getEmpName();
    }

    sendMsg(test);
}

Нет необходимости сохранять результаты вашего запроса во вложенном List (или ArrayList), если вы 'просто планируем развернуть его, чтобы добраться до базового Employee объекта.

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