我是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 :(得分:2)
如果两个表都有关系,那么使用join来使用join我们使用
来获取数据select e.f_ideResa, d.F_PAXNAME from eresa as e
left join fetch e.dresa as d
where
e.F_DATEFROM=:x "
Pojo课程中{p> dresa
属于eresa
您必须检查f_ideResa
,F_PAXNAME
,F_DATEFROM
必须是Pojo类中的字段名称
有关详细信息see
答案 1 :(得分: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();
}