Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用QueryDsl从子查询创建别名_Java_Hibernate_Jpa_Jakarta Ee_Querydsl - Fatal编程技术网

Java 使用QueryDsl从子查询创建别名

Java 使用QueryDsl从子查询创建别名,java,hibernate,jpa,jakarta-ee,querydsl,Java,Hibernate,Jpa,Jakarta Ee,Querydsl,我的目标是转换这个SQL查询: select a.*, (select count(DOGS.DOG_ID) from DOGS where a.DOG_ID = DOGS.DOG_ID) cnt from ANIMALS a order by cnt desc ; 我创建了一个QueryDsl查询,如下所示: createQuery() .select(Projections.constructor(AnimalsDto.class, animal.animalId

我的目标是转换这个
SQL查询

select a.*, (select count(DOGS.DOG_ID) from DOGS where a.DOG_ID = 
DOGS.DOG_ID) cnt
from ANIMALS a
order by cnt desc ;
我创建了一个
QueryDsl
查询,如下所示:

createQuery()
            .select(Projections.constructor(AnimalsDto.class, animal.animalId, animal.firstName,
                    Expressions.as(subQueryForDogsCount(dogs, animal), "cnt")))
            .from(animal).orderBy(new OrderSpecifier<>(Order.ASC, Expressions.asString("cnt"))).fetch();
[select 
animal.animalId, 
prospect.firstName,  
(select count(DOGS.dogId)
from DOGS dogs
where dogs.dogId = animal.dogId) as cnt
from ANIMAL animal
order by ?1 desc]
当我记录该查询时,我得到如下结果:

createQuery()
            .select(Projections.constructor(AnimalsDto.class, animal.animalId, animal.firstName,
                    Expressions.as(subQueryForDogsCount(dogs, animal), "cnt")))
            .from(animal).orderBy(new OrderSpecifier<>(Order.ASC, Expressions.asString("cnt"))).fetch();
[select 
animal.animalId, 
prospect.firstName,  
(select count(DOGS.dogId)
from DOGS dogs
where dogs.dogId = animal.dogId) as cnt
from ANIMAL animal
order by ?1 desc]
当我想要执行它时,我得到了一个
nullpointerexpection
,我认为问题可能出现在最后一个列表中:
?1
。为什么
querydsl
看不到此别名?也许还有其他方法可以为它创建别名吗