diff --git a/src/main/java/org/springframework/data/reindexer/repository/query/ReindexerRepositoryQuery.java b/src/main/java/org/springframework/data/reindexer/repository/query/ReindexerRepositoryQuery.java index 166ad1f..220b781 100644 --- a/src/main/java/org/springframework/data/reindexer/repository/query/ReindexerRepositoryQuery.java +++ b/src/main/java/org/springframework/data/reindexer/repository/query/ReindexerRepositoryQuery.java @@ -88,6 +88,9 @@ public Object execute(Object[] parameters) { if (this.tree.isExistsProjection()) { return query.exists(); } + if (this.tree.isCountProjection()) { + return query.count(); + } return query.findOne(); } diff --git a/src/test/java/org/springframework/data/reindexer/repository/ReindexerRepositoryTests.java b/src/test/java/org/springframework/data/reindexer/repository/ReindexerRepositoryTests.java index b39a425..776a3ba 100644 --- a/src/test/java/org/springframework/data/reindexer/repository/ReindexerRepositoryTests.java +++ b/src/test/java/org/springframework/data/reindexer/repository/ReindexerRepositoryTests.java @@ -653,6 +653,14 @@ public void existsByName() { assertTrue(this.repository.existsByName(testItem.getName())); } + @Test + public void countByValue() { + this.repository.save(new TestItem(1L, "TestName1", "TestValue")); + this.repository.save(new TestItem(2L, "TestName2", "TestValue")); + this.repository.save(new TestItem(3L, "TestName3", "TestValue1")); + assertEquals(2, this.repository.countByValue("TestValue")); + } + @Test public void findByEnumStringIn() { List expectedItems = new ArrayList<>(); @@ -837,6 +845,8 @@ Optional findOneSqlByNameAndValueManyParams(String name1, String name2 List findByTestEnumOrdinalIn(TestEnum... values); boolean existsByName(String name); + + int countByValue(String name); } @Namespace(name = NAMESPACE_NAME)