我有一个查询,它从表c中获取表d中每个id的名称。
select
status,
name
from
(
select
id,
name
from
A,
(
select
name,
age
from
B,
(
select
p_id,
name
from
C
)
c
where
c.p_id = B.p_id
)
b
where
b.age = A.age
)
a,
D
where
D.id = a.id
group by
status,
name;
Table FIELDS: SAY,
A- id,age
B - p_id,age
C-p_id,name
D-id,status
这在sql中工作得非常好。但是,当我在java应用程序中使用它时,我将hibernate用于orm。这在休眠时失败。
我抛出一个hibernatequerysyntax异常:意外的标记:(靠近第1行,列。。。。。这是在这一行:“选择状态,名称从(选择)”。
hibernate不支持通过子查询选择列吗?需要帮忙吗?我该怎么办?我尝试过连接,但是由于表中有大量记录(>400万条),执行起来需要20多秒。所以我尝试了子查询。
(假设每个年龄都与一个名字相关联)。
1条答案
按热度按时间wfveoks01#
我意识到了错误。我使用的是createquery而不是createsqlquery。