2014-11-22 10 views
1

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

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

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

(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

Согласно исключению, вы должны передавать неправильное значение, которое не может быть введено в число –

ответ

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

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

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 classs eresa Вы должны проверить f_ideResa, F_PAXNAME, F_DATEFROM должны быть имена полей в классе Pojo

Для получения более подробной информации see