Я новичок в 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..
Я думаю, что я хочу использовать 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();
}
Если обе таблицы имеют отношения, то используйте 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
Подробнее см.
join
. Но ваша проблема может заключаться в том, что вы читаетеd.F_PAXNAME
как число, а не как строку.