HQL-Select из 2-х таблиц

1

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

(select d from eresa  e, dresa  d where  e.f_ideResa = d.eresa.f_ideResa and e.F_DATEFROM=:x)

но когда я хочу выбрать кратные данные из двух двух таблиц, например:

(select e.f_ideResa, d.F_PAXNAME from eresa as e, dresa as d where  e.f_ideResa = d.eresa.f_ideResa and e.F_DATEFROM=:x  ");)

это дает мне ошибку:

Etat HTTP 500 - java.lang.NumberFormatException..

  • 0
    Вы должны изучить правильный синтаксис join . Но ваша проблема может заключаться в том, что вы читаете d.F_PAXNAME как число, а не как строку.
  • 0
    Согласно исключению, вы должны передавать неправильное значение, которое не может быть приведено к числу
Теги:
hibernate
hql

2 ответа

1
Лучший ответ

Я думаю, что я хочу использовать arraylist вместо списка

public List<eresa> getDetailparDateArrive(Date date) {
        // TODO Auto-generated method stub
        Session session=HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();
    //  Query req=session.createQuery("from eresa e inner join dresa d on e.f_ideResa = d.eresa.f_ideResa and e.F_DATEFROM=:x  ");
        Query req=session.createQuery("from eresa e, dresa d where e.F_DATEFROM=:x and e.f_ideResa = d.eresa.f_ideResa ");
        req.setParameter("x", date);
        return req.list();
    }
  • 0
    пожалуйста, мне нужна помощь
2

Если обе таблицы имеют отношения, то используйте join для извлечения данных, используя соединение, которое мы используем

select e.f_ideResa, d.F_PAXNAME from  eresa as e
 left join fetch e.dresa as d
where 
e.F_DATEFROM=:x "

dresa принадлежит классу Pojo eresa Вы должны проверить f_ideResa, F_PAXNAME, F_DATEFROM должны быть именами полей в классе Pojo

Подробнее см.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню