spring data jpa : named query
This commit is contained in:
@@ -8,6 +8,10 @@ import javax.persistence.*;
|
||||
@Getter @Setter
|
||||
@NoArgsConstructor(access = AccessLevel.PROTECTED)
|
||||
@ToString(of = {"id", "username", "age"})
|
||||
@NamedQuery(
|
||||
name="Member.findByUsername",
|
||||
query="select m from Member m where m.username = :username"
|
||||
)
|
||||
public class Member {
|
||||
|
||||
@Id @GeneratedValue
|
||||
|
||||
@@ -48,4 +48,10 @@ public class MemberJpaRepository {
|
||||
.setParameter("age", age)
|
||||
.getResultList();
|
||||
}
|
||||
|
||||
public List<Member> findByUsername(String username) {
|
||||
return em.createNamedQuery("Member.findByUsername", Member.class)
|
||||
.setParameter("username", username)
|
||||
.getResultList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,10 +2,15 @@ package com.example.springdatajpa.repository;
|
||||
|
||||
import com.example.springdatajpa.entity.Member;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface MemberRepository extends JpaRepository<Member, Long> {
|
||||
|
||||
List<Member> findByUsernameAndAgeGreaterThan(String username, int age);
|
||||
|
||||
@Query(name = "Member.findByUsername") // named query 가 있는지 먼저 찾고(domain.methodName) -> query creation
|
||||
List<Member> findByUsername(@Param("username") String username);
|
||||
}
|
||||
|
||||
@@ -72,4 +72,16 @@ class MemberJpaRepositoryTest {
|
||||
assertEquals(20, result.get(0).getAge());
|
||||
assertEquals(1, result.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNamedQuery() {
|
||||
Member m1 = new Member("aaa", 10);
|
||||
Member m2 = new Member("bbb", 20);
|
||||
memberJpaRepository.save(m1);
|
||||
memberJpaRepository.save(m2);
|
||||
|
||||
List<Member> result = memberJpaRepository.findByUsername("aaa");
|
||||
|
||||
assertEquals(m1, result.get(0));
|
||||
}
|
||||
}
|
||||
@@ -72,4 +72,16 @@ public class MemberRepositoryTest {
|
||||
assertEquals(20, result.get(0).getAge());
|
||||
assertEquals(1, result.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNamedQuery() {
|
||||
Member m1 = new Member("aaa", 10);
|
||||
Member m2 = new Member("bbb", 20);
|
||||
memberRepository.save(m1);
|
||||
memberRepository.save(m2);
|
||||
|
||||
List<Member> result = memberRepository.findByUsername("aaa");
|
||||
|
||||
assertEquals(m1, result.get(0));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user