회원 도메인 개발
회원 리포지토리 개발
// 컴포넌트 스캔에 의해 자동으로 빈으로 관리된다.
@Repository
public class MemberRepository {
// 스프링이 EntityManager를 주입해준다.
@PersistenceContext
private 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() {
// 리스트는 jpql을 사용해야 한다.
// sql은 테이블을 대상으로, jpql은 객체를 대상으로 쿼리한다는 점이 다르다.
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) // :name 파라미터 바인딩
.getResultList();
}
}@Repository
@PersistenceContext
@PersistenceUnit
회원 서비스 개발
@Transactional
@Autowired
회원 기능 테스트
회원 가입


중복 회원 예외
테스트를 위한 설정


Last updated