jpashop : data jpa
This commit is contained in:
@@ -1,40 +1,12 @@
|
||||
package com.example.jpashop.repository;
|
||||
|
||||
import com.example.jpashop.domain.Member;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.PersistenceContext;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class MemberRepository {
|
||||
public interface MemberRepository extends JpaRepository<Member, Long> {
|
||||
|
||||
// Spring data JPA 가 @Autowired 로 주입을 해주기 때문에 @RequiredArgsConstructor 사용가능 (생성자 주입)
|
||||
// 기본적으로는 @PersistenceContext 사용
|
||||
// @PersistenceContext
|
||||
// private EntityManager em;
|
||||
|
||||
private final EntityManager em;
|
||||
|
||||
public void save(Member member){
|
||||
em.persist(member);
|
||||
}
|
||||
|
||||
public Member findOne(Long id) {
|
||||
return em.find(Member.class, id);
|
||||
}
|
||||
|
||||
public List<Member> findAll() {
|
||||
return em.createQuery("select m from Member m", Member.class)
|
||||
.getResultList();
|
||||
}
|
||||
|
||||
public List<Member> findByName(String name) {
|
||||
return em.createQuery("select m from Member m where m.name = :name", Member.class)
|
||||
.setParameter("name", name)
|
||||
.getResultList();
|
||||
}
|
||||
// select m from Member m where m.name = ?
|
||||
List<Member> findByName(String name);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package com.example.jpashop.repository;
|
||||
|
||||
import com.example.jpashop.domain.Member;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
import javax.persistence.PersistenceContext;
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class MemberRepositoryOld {
|
||||
|
||||
// Spring data JPA 가 @Autowired 로 주입을 해주기 때문에 @RequiredArgsConstructor 사용가능 (생성자 주입)
|
||||
// 기본적으로는 @PersistenceContext 사용
|
||||
// @PersistenceContext
|
||||
// private EntityManager em;
|
||||
|
||||
private final EntityManager em;
|
||||
|
||||
public void save(Member member){
|
||||
em.persist(member);
|
||||
}
|
||||
|
||||
public Member findOne(Long id) {
|
||||
return em.find(Member.class, id);
|
||||
}
|
||||
|
||||
public List<Member> findAll() {
|
||||
return em.createQuery("select m from Member m", Member.class)
|
||||
.getResultList();
|
||||
}
|
||||
|
||||
public List<Member> findByName(String name) {
|
||||
return em.createQuery("select m from Member m where m.name = :name", Member.class)
|
||||
.setParameter("name", name)
|
||||
.getResultList();
|
||||
}
|
||||
}
|
||||
@@ -3,8 +3,8 @@ package com.example.jpashop.service;
|
||||
import com.example.jpashop.api.updateMemberRequest;
|
||||
import com.example.jpashop.domain.Member;
|
||||
import com.example.jpashop.repository.MemberRepository;
|
||||
import com.example.jpashop.repository.MemberRepositoryOld;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -46,13 +46,13 @@ public class MemberService {
|
||||
}
|
||||
|
||||
public Member findOne(Long memberId) {
|
||||
return memberRepository.findOne(memberId);
|
||||
return memberRepository.findById(memberId).get();
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void update(Long id, updateMemberRequest request) {
|
||||
|
||||
Member member = memberRepository.findOne(id);
|
||||
Member member = memberRepository.findById(id).get();
|
||||
member.setName(request.getName());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,7 @@ import com.example.jpashop.domain.Member;
|
||||
import com.example.jpashop.domain.Order;
|
||||
import com.example.jpashop.domain.OrderItem;
|
||||
import com.example.jpashop.domain.item.Item;
|
||||
import com.example.jpashop.repository.ItemRepository;
|
||||
import com.example.jpashop.repository.MemberRepository;
|
||||
import com.example.jpashop.repository.OrderRepository;
|
||||
import com.example.jpashop.repository.OrderSearch;
|
||||
import com.example.jpashop.repository.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -31,7 +28,7 @@ public class OrderService {
|
||||
public Long order(Long memberId, Long itemId, int count) {
|
||||
|
||||
// 엔티티 조회
|
||||
Member member = memberRepository.findOne(memberId);
|
||||
Member member = memberRepository.findById(memberId).get();
|
||||
Item item = itemRepository.findOne(itemId);
|
||||
|
||||
// 배송정보 생성성
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
package com.example.jpashop.service;
|
||||
|
||||
import com.example.jpashop.domain.Member;
|
||||
import com.example.jpashop.repository.MemberRepository;
|
||||
import com.example.jpashop.repository.MemberRepositoryOld;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.annotation.Rollback;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@@ -20,7 +17,8 @@ import static org.junit.Assert.*;
|
||||
public class MemberServiceTest {
|
||||
|
||||
@Autowired MemberService memberService;
|
||||
@Autowired MemberRepository memberRepository;
|
||||
@Autowired
|
||||
MemberRepositoryOld memberRepositoryOld;
|
||||
// @Autowired EntityManager em;
|
||||
|
||||
@Test
|
||||
@@ -34,7 +32,7 @@ public class MemberServiceTest {
|
||||
|
||||
// then
|
||||
// em.flush();
|
||||
assertEquals(member, memberRepository.findOne(savedId));
|
||||
assertEquals(member, memberRepositoryOld.findOne(savedId));
|
||||
}
|
||||
|
||||
@Test(expected = IllegalStateException.class)
|
||||
|
||||
Reference in New Issue
Block a user