Skip to content

Commit 39b7570

Browse files
author
eugenp
committed
new custom query operation for spring data and tests
1 parent 6da20ff commit 39b7570

File tree

4 files changed

+22
-8
lines changed

4 files changed

+22
-8
lines changed

spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/IFooDao.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
import org.springframework.data.jpa.repository.JpaRepository;
55
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
66
import org.springframework.data.jpa.repository.Query;
7+
import org.springframework.data.repository.query.Param;
78

89
public interface IFooDao extends JpaRepository<Foo, Long>, JpaSpecificationExecutor<Foo> {
910

1011
@Query("SELECT f FROM Foo f WHERE LOWER(f.name) = LOWER(:name)")
11-
Foo retrieveByName(String name);
12+
Foo retrieveByName(@Param("name") String name);
1213

1314
}

spring-security-rest-full/src/main/java/org/baeldung/persistence/service/IFooService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@
44
import org.baeldung.persistence.model.Foo;
55

66
public interface IFooService extends IOperations<Foo> {
7-
//
7+
8+
Foo retrieveByName(String name);
9+
810
}

spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,12 @@ protected PagingAndSortingRepository<Foo, Long> getDao() {
3232
return dao;
3333
}
3434

35+
// custom methods
36+
37+
public Foo retrieveByName(final String name) {
38+
return dao.retrieveByName(name);
39+
}
40+
3541
// overridden to be secured
3642

3743
@Override

spring-security-rest-full/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.baeldung.persistence.service;
22

33
import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
4+
import static org.junit.Assert.assertNotNull;
45

56
import org.baeldung.persistence.IOperations;
67
import org.baeldung.persistence.model.Foo;
@@ -39,16 +40,20 @@ public final void whenInvalidEntityIsCreated_thenDataException() {
3940
service.create(new Foo());
4041
}
4142

42-
// @Test(expected = DataIntegrityViolationException.class)
43-
// public final void whenEntityWithLongNameIsCreated_thenDataException() {
44-
// service.create(new Foo(randomAlphabetic(2048)));
45-
// }
43+
@Test(expected = DataIntegrityViolationException.class)
44+
public final void whenEntityWithLongNameIsCreated_thenDataException() {
45+
service.create(new Foo(randomAlphabetic(2048)));
46+
}
4647

4748
// custom Query method
4849

4950
@Test
50-
public final void givenUsingCustomQuery_whenExecuting_thenNoExceptions() {
51-
// service.create(new Foo(randomAlphabetic(2048)));
51+
public final void givenUsingCustomQuery_whenRetrievingEntity_thenFound() {
52+
final String name = randomAlphabetic(6);
53+
service.create(new Foo(name));
54+
55+
final Foo retrievedByName = service.retrieveByName(name);
56+
assertNotNull(retrievedByName);
5257
}
5358

5459
// work in progress

0 commit comments

Comments
 (0)