T.S.L은 Today Spring Learned로써 오늘 스프링 공부한 부분을 정리하는 글이다.
Repository
public interface MemoRepository extends JpaRepository<Memo, Long> {
List<Memo> findAllByOrderByModifiedAtDesc();
//List<Memo> findAll By OrderBy ModifiedAt Desc();
}
findAllByOrderByModifiedAtDesc() 처럼 이 이름은 어떻게 정해지는 걸까?
첫글자가 대문자로 작성해서 멤버변수를 작성한다.
예를 들어 멤버변수가 name이라면 아래와 같이 작성할 수 있다.
👉🏻 findByName
JPA 공식 홈페이지 살펴보기
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods
@Getter, @Setter
private 걸어두면 getter/setter를 사용한다 라고 알고 있었는데
강의에서 Dto에 @Setter를 적을 필요가 없다고 하셨다.
그래서 왜 필요없을까 검색해봤는데
Restful API 에 POST Method로 요청 시에 Body의 Json을 requestDto로 매핑하는데 있어서
@Setter가 필요없다 라고 적혀있었다.
(ObjectMapper가 전환을 해주니, Setter가 없어도 값이 할당되기 때문에 POST에서는 @Setter가 필요없다
라고 적혀있었다.)
1. 그렇다면 JSON 형식으로 보내지 않는다면 @Setter가 필요하다는 걸까?
2. 그리고 GET에서는 private 으로 설정된 변수들로 인해 getter/setter를 사용하는 걸까??
A.
https://jojoldu.tistory.com/407 이 링크를 보셨냐고 하셨다. (검색에서 다 이렇게 나와있어서 질문드렸다고 했다.)
@Setter가 필요하다.
Response에 사용할 DTO는 Setter가 필요하다.
현업에서는 보편적으로 DTO에는 @Setter, @Getter을 붙여준다.
붙여준다고 해서 성능상 엄청 좋지 않거나 그렇지는 않는다.
dto는 일반적으로 setter을 쓴다.
👉🏻 private을 사용하니 @Getter와 @Setter 둘 다 쓰는 걸로만 계속 기억하면 될 듯 하다!
'T.S.L > 스프링 입문' 카테고리의 다른 글
99일차(API) (0) | 2021.12.20 |
---|---|
96일차(스프링 웹 개발 기초) (0) | 2021.12.17 |
95일차 (MVC와 템플릿 엔진) (0) | 2021.12.16 |
94일차(라이브러리) (0) | 2021.12.16 |
93일차 (0) | 2021.12.14 |