我正在表上进行自连接并使用 SQLExpression.datediff ,如下所示:
QSomeTable tb1 = new QSomeTable("tb1");
QSomeTable tb2 = new QSomeTable("tb2");
NumberExpression<Integer> ne = SQLExpression.datediff(DatePart.hour, tb1.time, tb2.time);
query.from(tb1, tb2).where........list(ne);
这会产生以下异常:
org.springframework.dao.InvalidDataAccessApiUsageException:节点没有数据类型:org.hibernate.hql.internal.ast.tree.MethodNode
我尝试在列表子句中选择一些其他字段,它工作正常。
非常感谢您的帮助!
最佳答案
Querydsl JPA 查询不支持 SQLExpression,因为 JPQL 不支持它们。它们也很难模拟,因为这些表达式的序列化是特定于 SQL 方言的。
关于java - 如何在querydsl中使用SQLExpression.datediff()返回的NumberExpression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24164326/