User Entity와 Repository, Service

NJW·2023년 3월 20일
0

HCI project

목록 보기
2/14

3/19

User에서 CRUD의 CR를 구현함.

구현

User Entity

ID

각 유저의 개인 키이다.
@Id로 Id를 기본키로 지정한 후 @GeneratedValue로 기본키를 스프링이 알아서 생성하도록 했다. 또한 외부에서는 member_id로 보이도록 @Column(name = "member_id")로 지정했다.

Email

각 유저의 이메일이이다.

Name

각 유저의 이름이다

Password

각 유저의 비밀번호이다.

Create_Date

각 유저가 언제 계정을 생성했는지를 알려주는 속성이다.

Login_Date

각 유저가 마지막에 로그인한 시기를 알려준다. 근데 이건 어떻게 구현한담..?

UserRepository

EntityManager em

@PersistenceContext로 엔티티 메니저를 만들어서 주입해준다. 이렇게 하면 해당 엔티티 메니저를 프록시로 감싸서 동시성 문제가 발생하지 않는다.

save

위에서 지정한 엔티티 메니저를 이용해서 저장을 한다.

findOne

아이디로 원하는 아이디를 찾아서 엔티티를 반환한다.

findAll

리스트를 이용해서 모두 찾는다. 이때는 createQuery로 JPA를 이용한다. 또한 .getResultList()로 리스트로 반환하도록 한다.

findByEmail

이메일을 이용해서 유저를 찾도록 함.

UserService

@Transactional(readOnly = true)로 오로지 읽기만을 하는데 join에만 @Transactional를 써서 추가 또한 하도록 한다.

UserRepository userRepository

@Autowired로 의존성 주입을 해주도록 한다.

join

중복을 확인하고 레파지토리에 저장하도록 한다.

validateDuplicateUser

중복성을 검사하고 만일 존재한다면 이미 존재하는 회원임을 알려준다. 근데 이상하다. 왜 중복된 이메일을 넣어도 중복 검사를 하지 않는 거지...? 테스트가 잘못 된 건가...

findUsers

유저를 전부 찾는다.

findOne

아이디를 하나 받아서 한 명을 찾는다.

깃허브

https://github.com/JWN999/Blog

추가 할 것

CRUD에서 U(Update)와 D(Delete) 구현, 그리고 중복 검사도 확인하기.

profile
https://jiwonna52.tistory.com/

0개의 댓글