Skip to content

Commit 676b5db

Browse files
author
Artemiy Degtyarev
committed
fix: remove second compare for one-key query
Signed-off-by: Artemiy Degtyarev <[email protected]>
1 parent 3b3c0bd commit 676b5db

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

spring-data-jdbc/src/main/java/org/springframework/data/jdbc/repository/query/StatementFactory.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,11 +258,14 @@ Criteria applyScrollCriteria(Criteria criteria, @Nullable ScrollPosition positio
258258
Sort.Direction dir = directions.getOrDefault(primary, Sort.DEFAULT_DIRECTION);
259259

260260
if (keyset.scrollsForward() ^ dir.isDescending()) {
261-
primaryCompare = Criteria.where(primary).greaterThanOrEquals(primaryValue);
261+
primaryCompare = columns.size() != 1 ? Criteria.where(primary).greaterThanOrEquals(primaryValue) : Criteria.where(primary).greaterThan(primaryValue);
262262
} else {
263-
primaryCompare = Criteria.where(primary).lessThanOrEquals(primaryValue);
263+
primaryCompare = columns.size() != 1 ? Criteria.where(primary).lessThanOrEquals(primaryValue) : Criteria.where(primary).lessThan(primaryValue);
264264
}
265265

266+
if (columns.size() == 1)
267+
return criteria.and(primaryCompare);
268+
266269
Criteria tupleCompare = null;
267270
for (int i = 0; i < columns.size(); i++) {
268271
Criteria orCriteria;

spring-data-jdbc/src/test/java/org/springframework/data/jdbc/repository/JdbcRepositoryIntegrationTests.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1560,7 +1560,9 @@ void queryByWindowKeySetTwoKeys() {
15601560
DummyEntity five = repository.save(createEntity("five", it -> it.setPointInTime(Instant.ofEpochSecond(5000))));
15611561

15621562
WindowIterator<DummyEntity> iter = WindowIterator.of(position -> repository.findFirst2ByOrderByIdPropAsc(position))
1563-
.startingAt(ScrollPosition.forward(Map.of("idProp", 1, "pointInTime", Instant.ofEpochSecond(1000))));
1563+
.startingAt(ScrollPosition.forward(
1564+
Map.of("idProp", 1, "pointInTime", Instant.ofEpochSecond(1000))
1565+
));
15641566

15651567
List<DummyEntity> entities = new ArrayList<>();
15661568
while (iter.hasNext())

0 commit comments

Comments
 (0)