spring data jpa : basic crud test(jpa)
This commit is contained in:
@@ -5,6 +5,8 @@ import org.springframework.stereotype.Repository;
|
|||||||
|
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
import javax.persistence.PersistenceContext;
|
import javax.persistence.PersistenceContext;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public class MemberJpaRepository {
|
public class MemberJpaRepository {
|
||||||
@@ -17,6 +19,25 @@ public class MemberJpaRepository {
|
|||||||
return member;
|
return member;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void delete(Member member) {
|
||||||
|
em.remove(member);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Member> findAll() {
|
||||||
|
return em.createQuery("select m from Member m", Member.class)
|
||||||
|
.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Optional<Member> findById(Long id) {
|
||||||
|
Member member = em.find(Member.class, id);
|
||||||
|
return Optional.ofNullable(member);
|
||||||
|
}
|
||||||
|
|
||||||
|
public long count() {
|
||||||
|
return em.createQuery("select count(m) from Member m", Long.class)
|
||||||
|
.getSingleResult();
|
||||||
|
}
|
||||||
|
|
||||||
public Member find(Long id) {
|
public Member find(Long id) {
|
||||||
return em.find(Member.class, id);
|
return em.find(Member.class, id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package com.example.springdatajpa.repository;
|
||||||
|
|
||||||
|
import com.example.springdatajpa.entity.Team;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import javax.persistence.EntityManager;
|
||||||
|
import javax.persistence.PersistenceContext;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@Repository
|
||||||
|
public class TeamJpaRepository {
|
||||||
|
|
||||||
|
@PersistenceContext
|
||||||
|
private EntityManager em;
|
||||||
|
|
||||||
|
public Team save(Team team) {
|
||||||
|
em.persist(team);
|
||||||
|
return team;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void delete(Team team) {
|
||||||
|
em.remove(team);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Team> findAll() {
|
||||||
|
return em.createQuery("select t from Team t", Team.class)
|
||||||
|
.getResultList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Optional<Team> findById(Long id) {
|
||||||
|
Team team = em.find(Team.class, id);
|
||||||
|
return Optional.ofNullable(team);
|
||||||
|
}
|
||||||
|
|
||||||
|
public long count() {
|
||||||
|
return em.createQuery("select count(t) from Team t", Long.class)
|
||||||
|
.getSingleResult();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,6 +7,8 @@ import org.springframework.boot.test.context.SpringBootTest;
|
|||||||
import org.springframework.test.annotation.Rollback;
|
import org.springframework.test.annotation.Rollback;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
@@ -28,4 +30,32 @@ class MemberJpaRepositoryTest {
|
|||||||
assertEquals(findMember.getUsername(), member.getUsername());
|
assertEquals(findMember.getUsername(), member.getUsername());
|
||||||
assertEquals(findMember, member); // findMember == member : 같은 트랜잭션 안에서는 영속성 컨텍스트 동일성 보장
|
assertEquals(findMember, member); // findMember == member : 같은 트랜잭션 안에서는 영속성 컨텍스트 동일성 보장
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void basicCRUD() {
|
||||||
|
Member member1 = new Member("member1");
|
||||||
|
Member member2 = new Member("member2");
|
||||||
|
memberJpaRepository.save(member1);
|
||||||
|
memberJpaRepository.save(member2);
|
||||||
|
|
||||||
|
// 단건 조회 검증
|
||||||
|
Member findMember1 = memberJpaRepository.findById(member1.getId()).get();
|
||||||
|
Member findMember2 = memberJpaRepository.findById(member2.getId()).get();
|
||||||
|
assertEquals(findMember1, member1);
|
||||||
|
assertEquals(findMember2, member2);
|
||||||
|
|
||||||
|
// 리스트 조회 검증
|
||||||
|
List<Member> all = memberJpaRepository.findAll();
|
||||||
|
assertEquals(2, all.size());
|
||||||
|
|
||||||
|
// 카운트 검증
|
||||||
|
long count = memberJpaRepository.count();
|
||||||
|
assertEquals(2, count);
|
||||||
|
|
||||||
|
// 삭제 검증
|
||||||
|
memberJpaRepository.delete(member1);
|
||||||
|
memberJpaRepository.delete(member2);
|
||||||
|
long deleteCount = memberJpaRepository.count();
|
||||||
|
assertEquals(0, deleteCount);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user