
update와 같은것들은 왠만해서는 한가지 일만 해라
여기서 void가 아니라 Member를 반환하면 Update도 하고 Member도 반환하는 꼴이 되기 때문이다. 할 수있다면 분리하자
여기서 void가 아니라 Member를 반환하면 Update도 하고 Member도 반환하는 꼴이 되기 때문이다. 할 수있다면 분리하자
DTO를 만들어 따로 받아서 만들어라 그렇게 안하면 Entity스팩이 바뀌어버리면 유지보수가 힘들어지며 머리가 아파져버린다. 만약 password를 api로는 password를 받는다고 하는데 갑자기 Entity의 스팩에서 password가 없어져 버리면 그때는 머리가 아파진다. 이런식으로 DTO로 받아내면 좋다. Entity가 바뀐다고 DTO가 바뀌는것이 아니기 때문이다.
Embeddable과 같은 값타입은 기본 생성자를 public 또는 protected로 설정해야 한다 함 그리고 setter또한 막아두자 값타입은 불변이여야 함 JPA가 이런 제약을 두는 이유는 JPA구현 라이브러리가 객체를 생성할 때 리플랙션 같은 기술을 사용할 수 있도록 지원해야 하기 때문임 그리고 누가 마음대로 생성하지 못하게 하기 위해서
@Getter @Entity @AllArgsConstructor @Builder public class Image { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "image_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "article_id") private Article article; //게시글 아이디 @ElementCollection private List imageFiles; protected Image(){} } @Getter @Entity @Builder @AllArgsConstructor public class Artic..