Hibernate无法运行此hql查询

时间:2012-11-27 05:38:39

标签: java sql hibernate hql

我有这个查询

select faktur.* from
(select a.no_do, a.no_faktur, b.dlr_nama, a.crea_date from honda_h100_fakdos a, honda_h000_dealers b where a.kd_dlr=b.kd_dlr and a.status<>'X' and a.do_tahun>='2012') faktur 

它在我的SQL管理器上运行没有问题,但是当我将此SQL转换为HQL时,我总是收到此错误消息。

"expecting IDENT, found '*' near line 1"

下面是我的HQL

select f.* (select a.noDo, a.noFaktur, a.creaDate from HondaH100Fakdos a where a.status <> 'X' and a.doTahun >= '2012' and a.doBulan = '02')  f

我仍然是Hibernate和Java的初学者。

有人可以解释为什么Hibernate无法将此查询转换为HQL吗?

2 个答案:

答案 0 :(得分:2)

例如:

db entity:

public class User{

int id;

String name;

// setter and getter
}
db table name : tn_user
       column : tn_id,tn_name

hql : "from User where id=? and name=?" 

? is parameter

答案 1 :(得分:0)

我认为您在FROM后错过SELECT

select f.* from (select a.noDo, a.noFaktur, a.creaDate 
from HondaH100Fakdos a 
where a.status <> 'X' and a.doTahun >= '2012' and a.doBulan = '02') f

无论如何,这个子选择在这里毫无用处。这将得到相同的结果:

select a.noDo, a.noFaktur, a.creaDate 
from HondaH100Fakdos a 
where a.status <> 'X' and a.doTahun >= '2012' and a.doBulan = '02'