diff --git a/persistence-modules/pom.xml b/persistence-modules/pom.xml
index ce6f4d3424..06b549b235 100644
--- a/persistence-modules/pom.xml
+++ b/persistence-modules/pom.xml
@@ -87,7 +87,7 @@
spring-data-jpa-query
spring-data-jpa-query-2
spring-data-jpa-query-3
-
+ spring-data-jpa-repo
spring-data-jpa-repo-2
spring-data-jdbc
spring-data-keyvalue
diff --git a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/derivedquery/repository/UserRepository.java b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/derivedquery/repository/UserRepository.java
index 76cdf41d81..8f86e8ce49 100644
--- a/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/derivedquery/repository/UserRepository.java
+++ b/persistence-modules/spring-data-jpa-repo/src/main/java/com/baeldung/derivedquery/repository/UserRepository.java
@@ -2,6 +2,8 @@ package com.baeldung.derivedquery.repository;
import com.baeldung.derivedquery.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
import java.time.ZonedDateTime;
import java.util.Collection;
@@ -49,9 +51,12 @@ public interface UserRepository extends JpaRepository {
List findByAgeIn(Collection ages);
- List findByNameOrBirthDate(String name, ZonedDateTime birthDate);
+ @Query(value = "select * from users where (name = :nameParam OR birth_date <> :birthDateParam)", nativeQuery = true)
+ List findByNameOrBirthDate(@Param(value = "nameParam") String nameParam, @Param(value = "birthDateParam") ZonedDateTime birthDateParam);
- List findByNameOrBirthDateAndActive(String name, ZonedDateTime birthDate, Boolean active);
+ @Query(value = "select * from users where (name = :nameParam OR birth_date <> :birthDateParam) and active = :activeParam", nativeQuery = true)
+ List findByNameOrBirthDateAndActive(@Param(value = "nameParam") String nameParam, @Param(value = "birthDateParam") ZonedDateTime birthDateParam,
+ @Param(value = "activeParam") Boolean activeParam);
List findByNameOrderByName(String name);
diff --git a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/derivedquery/repository/UserRepositoryIntegrationTest.java b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/derivedquery/repository/UserRepositoryIntegrationTest.java
index 2a6e166b88..75e0db253f 100644
--- a/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/derivedquery/repository/UserRepositoryIntegrationTest.java
+++ b/persistence-modules/spring-data-jpa-repo/src/test/java/com/baeldung/derivedquery/repository/UserRepositoryIntegrationTest.java
@@ -161,7 +161,7 @@ public class UserRepositoryIntegrationTest {
@Test
public void whenByNameOrBirthDateAndActive() {
- assertEquals(3, userRepository.findByNameOrBirthDateAndActive(USER_NAME_ADAM, BIRTHDATE, false).size());
+ assertEquals(2, userRepository.findByNameOrBirthDateAndActive(USER_NAME_ADAM, BIRTHDATE, false).size());
}
@Test