我使用带有本机查询的 spring data jpa
我已经有一些这样的查询
如何使用本机查询无参数。
String q="SELECT t1.blockNumber-1 FROM someTAble t1 LEFT JOIN someTAble t2 ON t2.blockNumber = t1.blockNumber-1 WHERE t2.blockNumber IS NULL AND t1.blockNumber> 0 ORDER BY t1.blockNumber";
@Query(value = q,nativeQuery = true)
List<Entity> findByBlockNumberIs();
它们发生错误未找到列“序列”。
该查询意味着当我插入一些连续数据 int 值时,我会发现丢失的数据。
但是这个查询有效
SELECT *,t1.blockNumber-1 FROM someTAble t1 LEFT JOIN someTAble t2 ON t2.blockNumber = t1.blockNumber-1 WHERE t2.blockNumber IS NULL AND t1.blockNumber> 0 ORDER BY t1.blockNumber
两个查询的区别在于是否有'*'
如何简单地更改我的查询。
我如何更改错误
或如何使用 spring data jpa 谓词
QEntity qBe1= QEntity .blockEntity;
QEntity qBe2= QEntity .blockEntity;
build.and(qBe2.blockNumber.eq(be.getBlockNumber()-1))
.and(qBe2.blockNumber.isNull().and(qBe1.blockNumber.gt(0)));
谓词可以使用左连接吗?