spring data jpa : query creation

This commit is contained in:
haerong22
2021-08-31 23:05:44 +09:00
parent 7894be3a91
commit 56c3e04afa
5 changed files with 44 additions and 0 deletions

View File

@@ -32,6 +32,11 @@ public class Member {
}
}
public Member(String username, int age) {
this.username = username;
this.age = age;
}
public void changeTeam(Team team) {
this.team = team;
team.getMembers().add(this);

View File

@@ -41,4 +41,11 @@ public class MemberJpaRepository {
public Member find(Long id) {
return em.find(Member.class, id);
}
public List<Member> findByUsernameAndAgeGreaterThan(String username, int age) {
return em.createQuery("select m from Member m where m.username = :username and m.age > :age", Member.class)
.setParameter("username", username)
.setParameter("age", age)
.getResultList();
}
}

View File

@@ -3,5 +3,9 @@ package com.example.springdatajpa.repository;
import com.example.springdatajpa.entity.Member;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface MemberRepository extends JpaRepository<Member, Long> {
List<Member> findByUsernameAndAgeGreaterThan(String username, int age);
}

View File

@@ -58,4 +58,18 @@ class MemberJpaRepositoryTest {
long deleteCount = memberJpaRepository.count();
assertEquals(0, deleteCount);
}
@Test
void findByUsernameAndAgeGreaterThen() {
Member m1 = new Member("aaa", 10);
Member m2 = new Member("aaa", 20);
memberJpaRepository.save(m1);
memberJpaRepository.save(m2);
List<Member> result = memberJpaRepository.findByUsernameAndAgeGreaterThan("aaa", 15);
assertEquals("aaa", result.get(0).getUsername());
assertEquals(20, result.get(0).getAge());
assertEquals(1, result.size());
}
}

View File

@@ -58,4 +58,18 @@ public class MemberRepositoryTest {
long deleteCount = memberRepository.count();
assertEquals(0, deleteCount);
}
@Test
void findByUsernameAndAgeGreaterThen() {
Member m1 = new Member("aaa", 10);
Member m2 = new Member("aaa", 20);
memberRepository.save(m1);
memberRepository.save(m2);
List<Member> result = memberRepository.findByUsernameAndAgeGreaterThan("aaa", 15);
assertEquals("aaa", result.get(0).getUsername());
assertEquals(20, result.get(0).getAge());
assertEquals(1, result.size());
}
}