@Repository
public class MemberRepository {
@PersistenceContext
private EntityManager em;
public Long save(Member member){
em.persist(member);
return member.getId();
}
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 username){
return em.createQuery("select m from Member m where m.name = :username", Member.class)
.setParameter("username", username)
.getResultList();
}
}
@PersistenceContext 직역 영속성 컨텍스트인데, 이거 해 놓으면 알아서 스프링에서 영속성 컨텍스트 관리자인 엔티티 매니저 주입해 줌.
근데
@Repository
@RequiredArgsConstructor
public class MemberRepository {
private final EntityManager em;
이렇게 하는 것도 좋음. 주입해줌.
만약 엔티티 매니저 팩토리를 받고 싶으면
@PersistenceUnit 해서
private EntityManagerFactory emf
해서 받으면 됨.
그 외에 뭐
이게 아무래도 jpa는 단건 조회를 주로 지원 하는 듯.
전체조회는 쿼리를 써야 함.
저렇게 파라미터 바인딩 할 수도 있고.
'스프링데이터 + JPA > 웹 애플리케이션 개발' 카테고리의 다른 글
14. 회원 테스트 (0) | 2023.11.06 |
---|---|
13. 회원 서비스 (0) | 2023.11.06 |
11. 애플리케이션 아키텍처 (0) | 2023.11.05 |
10. 구현 요구사항 (0) | 2023.11.05 |
9. 엔티티 개발 주의점 (0) | 2023.11.05 |