Querydsl 比较元组

问题描述 投票:0回答:1

我正在尝试用 Java 构建 Querydsl 表达式。我正在努力达到:

where (last_name, first_name, actor_id) < ('Allen', 'Meryl', 194)

我们进行元组比较的地方。 mysql 和 postgres 支持此功能。

我所有的 ComparablePaths 都在:

List<ComparablePath> paths = new ArrayList<>();

您可以假设此列表已正确填充(确实如此)。所以,我正在尝试这样做:

BooleanBuilder pred = new BooleanBuilder(Expressions.list(paths.toArray(new ComparablePath[0])).???);

但是???没有

lt
运算符。只是
eq
ne
in
not in
等。没有比较的。

我们如何在querydsl中生成元组比较?

java mysql spring querydsl
1个回答
0
投票

如果我们假设路径列表的排序方式与元组中字段的排序方式相同,我们可以这样做:

var pred = new BooleanBuilder();
pred.and(paths.get(0).lt("Allen"))
.and(paths.get(1).lt("Meryl"))
.and(paths.get(2).lt(194));
© www.soinside.com 2019 - 2024. All rights reserved.