0

我使用带有本机查询的 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)));

谓词可以使用左连接吗?

4

1 回答 1

1

出色地...

用这个。

List<Integer> findByBlockNumber()
于 2019-08-26T09:05:43.280 回答