User에서 CRUD의 CR를 구현함.
각 유저의 개인 키이다.
@Id로 Id를 기본키로 지정한 후 @GeneratedValue로 기본키를 스프링이 알아서 생성하도록 했다. 또한 외부에서는 member_id로 보이도록 @Column(name = "member_id")로 지정했다.
각 유저의 이메일이이다.
각 유저의 이름이다
각 유저의 비밀번호이다.
각 유저가 언제 계정을 생성했는지를 알려주는 속성이다.
각 유저가 마지막에 로그인한 시기를 알려준다. 근데 이건 어떻게 구현한담..?
@PersistenceContext로 엔티티 메니저를 만들어서 주입해준다. 이렇게 하면 해당 엔티티 메니저를 프록시로 감싸서 동시성 문제가 발생하지 않는다.
위에서 지정한 엔티티 메니저를 이용해서 저장을 한다.
아이디로 원하는 아이디를 찾아서 엔티티를 반환한다.
리스트를 이용해서 모두 찾는다. 이때는 createQuery로 JPA를 이용한다. 또한 .getResultList()로 리스트로 반환하도록 한다.
이메일을 이용해서 유저를 찾도록 함.
@Transactional(readOnly = true)로 오로지 읽기만을 하는데 join에만 @Transactional를 써서 추가 또한 하도록 한다.
@Autowired로 의존성 주입을 해주도록 한다.
중복을 확인하고 레파지토리에 저장하도록 한다.
중복성을 검사하고 만일 존재한다면 이미 존재하는 회원임을 알려준다. 근데 이상하다. 왜 중복된 이메일을 넣어도 중복 검사를 하지 않는 거지...? 테스트가 잘못 된 건가...
유저를 전부 찾는다.
아이디를 하나 받아서 한 명을 찾는다.
https://github.com/JWN999/Blog
CRUD에서 U(Update)와 D(Delete) 구현, 그리고 중복 검사도 확인하기.