Java HQL从2个表中选择

Java HQL从2个表中选择,java,sql,hibernate,hql,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) 但当我想从2个表中选择多个数据时,两个表如下: (select e.f_ideResa, d.F_PAXNAME from eresa as e, dresa as d where

我是
Hibernate
的初学者。我想使用
hql
从两个表中选择数据。 问题是,如果我选择一个对象(如本例所示),查询会给出结果:

(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


我想我应该用arraylist代替list

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();
    }
公共列表GetDetailParDateArrival(日期){
//TODO自动生成的方法存根
会话会话=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
//Query req=session.createQuery(“从e.f_ideResa上的eresa e内部连接dresa d=d.eresa.f_ideResa和e.f_DATEFROM=:x”);
Query req=session.createQuery(“from eresa e,dresa d,其中e.F_DATEFROM=:x和e.F_ideResa=d.eresa.F_ideResa”);
请求设置参数(“x”,日期);
返回请求列表();
}

我想我应该用arraylist代替list

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();
    }
公共列表GetDetailParDateArrival(日期){
//TODO自动生成的方法存根
会话会话=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
//Query req=session.createQuery(“从e.f_ideResa上的eresa e内部连接dresa d=d.eresa.f_ideResa和e.f_DATEFROM=:x”);
Query req=session.createQuery(“from eresa e,dresa d,其中e.F_DATEFROM=:x和e.F_ideResa=d.eresa.F_ideResa”);
请求设置参数(“x”,日期);
返回请求列表();
}

我想我应该用arraylist代替list

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();
    }
公共列表GetDetailParDateArrival(日期){
//TODO自动生成的方法存根
会话会话=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
//Query req=session.createQuery(“从e.f_ideResa上的eresa e内部连接dresa d=d.eresa.f_ideResa和e.f_DATEFROM=:x”);
Query req=session.createQuery(“from eresa e,dresa d,其中e.F_DATEFROM=:x和e.F_ideResa=d.eresa.F_ideResa”);
请求设置参数(“x”,日期);
返回请求列表();
}

我想我应该用arraylist代替list

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();
    }
公共列表GetDetailParDateArrival(日期){
//TODO自动生成的方法存根
会话会话=HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
//Query req=session.createQuery(“从e.f_ideResa上的eresa e内部连接dresa d=d.eresa.f_ideResa和e.f_DATEFROM=:x”);
Query req=session.createQuery(“from eresa e,dresa d,其中e.F_DATEFROM=:x和e.F_ideResa=d.eresa.F_ideResa”);
请求设置参数(“x”,日期);
返回请求列表();
}

如果两个表都有关系,那么使用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 "
dresa
在Pojo类中是合适的
erresa
您必须检查
f_ideResa
f_PAXNAME
f_DATEFROM
必须是Pojo类中的字段名


有关更多详细信息

如果两个表都有关系,请使用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 "
dresa
在Pojo类中是合适的
erresa
您必须检查
f_ideResa
f_PAXNAME
f_DATEFROM
必须是Pojo类中的字段名


有关更多详细信息

如果两个表都有关系,请使用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 "
dresa
在Pojo类中是合适的
erresa
您必须检查
f_ideResa
f_PAXNAME
f_DATEFROM
必须是Pojo类中的字段名


有关更多详细信息

如果两个表都有关系,请使用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 "
dresa
在Pojo类中是合适的
erresa
您必须检查
f_ideResa
f_PAXNAME
f_DATEFROM
必须是Pojo类中的字段名


有关详细信息,请学习正确的
join
语法。但您的问题可能是您将
d.F_PAXNAME
作为一个数字而不是字符串来读取。根据异常情况,您必须传递错误的值,不能转换为数字。您应该学习正确的
join
语法。但您的问题可能是您将
d.F_PAXNAME
作为一个数字而不是字符串来读取。根据异常情况,您必须传递错误的值,不能转换为数字。您应该学习正确的
join
语法。但您的问题可能是您将
d.F_PAXNAME
作为一个数字而不是字符串来读取。根据异常情况,您必须传递错误的值,不能转换为数字。您应该学习正确的
join
语法。但您的问题可能是您将
d.F_PAXNAME
作为一个数字而不是字符串来读取。根据异常,您必须传递错误的值,不能转换为数字