我有这个查询
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吗?
答案 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'