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
作为一个数字而不是字符串来读取。根据异常,您必须传递错误的值,不能转换为数字