728x90
@Column은 생략이 가능하다.
팀원은 pk에 @Column을 생략했고 나는 모든 필드명에 @Column을 작성했었다.
@Column에는 여러 옵션이 있는데 별다른 옵션을 설정하지 않는다면 생략이 가능하다.
즉 Entity 클래스에 정의된 모든 내부변수는 기본적으로 @Column 어노테이션을 포함한다고 볼 수 있다.
name 속성을 명시하지 않으면 Entity 클래스에 정의한 컬럼 변수의 이름으로 생성이 되는데
나는 name의 속성을 사용해서 @Column을 사용했고 팀원은 사용하지 않았던 것이다.
또 nullable = false를 사용하려면 @Column을 사용하게 되는데
pk는 이미 not null이므로 name 속성을 지정하지 않는 이상 생략이 가능하다고 한다.
toEntity()
여태껏 다른 사람이 작성했던 코드를 보면 Entity에 dto에 대한 생성자를 작성하지 않았었고
이 부분에 대해서 스터디에 얘기를 해보니
Entity에 dto를 사용하지 않고 dto에서 Entity를 사용한다고 한다.
그 이유는 하위레이어를 의존하는 것을 기본으로 하기 때문에
Controller > Service > Repository 순으로
Entity는 최하위이기 때문에 최하위에서 dto를 사용하기 보다는
dto에서 Entity를 사용하는 것이 낫다라고 판단하는 것이다.
또한 Entity를 보여주기보다 보안적으로 dto로 해서 보여주는게 낫다.
728x90
'TIL' 카테고리의 다른 글
findById vs getReferenceById (0) | 2022.12.12 |
---|---|
가설 (0) | 2022.12.10 |
프로젝트 관련 공부 (0) | 2022.12.03 |
이 글도 공감해주세요 게시판 기능 수정 (0) | 2022.12.01 |
연관관계 글 정리 완료 (0) | 2022.11.29 |