HQL-从2个表中选择

时间:2014-11-22 15:00:54

标签: java sql hibernate hql

我是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 ..

2 个答案:

答案 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_ideResaF_PAXNAMEF_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();
    }