hibernate抛出意外的token:(在第1行附近)对于使用sql的查询(包括子查询)异常

gblwokeq  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(273)

我有一个查询,它从表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多秒。所以我尝试了子查询。
(假设每个年龄都与一个名字相关联)。

wfveoks0

wfveoks01#

我意识到了错误。我使用的是createquery而不是createsqlquery。

相关问题