1. Memo 클래스 만들기
※ 메모는 1) 익명의 작성자 이름(username), 2) 메모 내용(contents) 으로 이루어져 있다.
→ domain 패키지 생성
① Memo.java
※ Lombok 자주사용되는 기능
1. @Getter / @Setter 를 붙인다면 Lombok 이 해당 필드에 대한 기본 Getter / Setter 를 생성해준다.
Private 생성된 정보를 조회하고 가져올때 필수로 사용해야될 기능이다.
2. @NoArgsConstructor 는 파라미터가 없는 기본생성자를 만들어준다. (여러 생성자가 만들어지는것을 방지하기위함??)
3. @Entity : 테이블과 연계됨을 스프링에게 알려준다.
② Timestamped.java
※ 주요기능
1. @MappedSuperclass : Timestamped 클래스를 상속하는 친구가 자동으로 생성시간,수정시간을 컬럼으로 인식
2. @EntityListeners : memo class가 변화하는걸 듣고있다. 지켜보고있다 라는 의미
3. AuditingEntityListener : 변화가 일어났다. 변화가 일어나면 자동으로 업데이트 해주겠다라는 의미
4. CreateDate / LastModifieDate : 생성시간 / 수정시간
LocalDateTime 은 시간을 나타내는 자료형
5. abstract 내용 추가 필요!
ex) public abstract classs Timestamped { ....
추상클래스이며, New Timestamped 처럼 글자를 못쓰기때문에 다른데서 상속이 되어야만 사용할 수 있으므로 추상클래스 내용이
추가되어야한다.
③ MemoRepository.java
※ 해석
MemoRepository 가 JpaRepository 를 미리 작성된 코드들(findall, delete, save, findbyId) 가져다쓸꺼다(=extends)
가져다 쓸 대상은 <Memo, Long> (= Memo라는 클래스이고 아이디는 Long 인 녀석)
findAllByOrderByModifiedAtDesc() : 다 찾아라(findAll) 정렬해줘(ByOrderBy) 수정날짜기준(ModifiedAt) 내림차순 (desc)
모두 찾아서 수정된날짜 기준으로 내림차순으로 정렬해줘 라는 뜻이다
* 공식홈페이지 참조!!!
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods
④ MemorequestDto.java
필요한 정보를 물고다니는 녀석!!!
그렇다면 이번 프로젝트에서는 수정요청이 오면은 누가 수정을했고 수정내용이 뭔지 알아야한다.
'내마음대로만들어보자 > JAVA & Spring' 카테고리의 다른 글
타임라인 프로젝트 만들기 - Controller (0) | 2021.06.27 |
---|---|
타임라인 프로젝트 만들기 - Service (0) | 2021.06.27 |
타임라인 프로젝트 만들기 (JavaSpring API 설계) (0) | 2021.06.25 |
API - POST, PUT, DELETE (ARC) (0) | 2021.06.23 |
API - GET , ARC (0) | 2021.06.23 |