Hibernate 无法使用 querydsl 定位命名参数

Hibernate fails to locate named parameter with querydsl

从 hibernate 5.0.11.Final 升级到 5.3.10.Final 并使用 querydsl 4.0.9

我遇到了这个错误

java.lang.IllegalArgumentException: Could not locate named parameter [1], expecting one of []

这是与 Hibernate 5.3 的兼容性问题。

您可以在此处找到有关此问题的票证: https://github.com/querydsl/querydsl/issues/2326

QueryDSL relied on Hibernate's behaviour that a positional parameter was basically a named parameter. This is no longer the case since 5.3.0.Beta1 (see the Hibernate ticket that @jpimag mentioned above).

From now on, QueryDSL needs to keep its positional parameters separated from the named parameters.

目前没有官方修复(QueryDSL 版本 4.2.1 - 2018 年 3 月 22 日)