스프링 데이터 JPA
데이터 접근 계층(Data Access Layer)은 CRUD라 부르는 입력,수정,삭제,조회 코드를 반복해서 개발해야 함.
JPA도 같은 문제가 있음.
public class MemberRepository {
@PersistenceContext
EntityManger em;
public void save(Member member) {...}
public Member findOne(Long id) {...}
public List<Member> findAll() {...}
public Member findByUserName(String #username) {...}
}
public class ItemRepository {
@PersistenceContext
EntityManager em;
public void save(Item item) {...}
public Item findOne(Long id) {...}
public List<Member> findAll() {...}
}
- 회원 Repository와 Item Repository가 하는 일이 비슷.
- 공통 부분을 해결하기 위해 제너릭과 상속을 이용해 부모클래스를 만든다.
- 이를 GenericDAO 부름. 부모 클래스 종속, 구현 클래스 상속을 갖는 단점.