gpt4 book ai didi

hibernate - 在Querydsl中选择Long类型变量

转载 作者:行者123 更新时间:2023-12-05 07:49:49 26 4
gpt4 key购买 nike

当我尝试运行此查询时:

Long count = ...;
List<CritereItem> items= new JPAQuery(entityManager).from(foo)
.list( new QCritereItem( foo.id, foo.name, count ));

我遇到了编译错误,因为构造函数期望 NumberPath<Long>不是Long在变量 count , 那么如何在querydsl中选择一个变量呢?

我将构造函数中的计数替换为:

Expressions.numberTemplate(Long.class, count.toString())

但是我得到了这个异常(exception)

java.lang.IllegalArgumentException: java.lang.ClassCastException@14edf4

最佳答案

您正在尝试通过 QueryDSL 构造函数传递常量。

检查表达式静态类以获取更多信息: QueryDSL API Reference

NumberExpression<Long> count = Expressions.asNumber(...);
List<CritereItem> items = new JPAQuery(entityManager).from(foo)
.list( new QCritereItem( foo.id, foo.name, count ));

另请注意,如果您想聚合计数,可以使用 foo.count()

关于hibernate - 在Querydsl中选择Long类型变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36919042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com