@JoinColumn의 name과 referencedColumnName 속성
·
Spring/스프링 Data JPA
@JoinColumn은 왜 사용할까요? 외래키 만드려고 사용해줍니다. 그런데 테이블과는 다르게 객체에서는 참조하는 테이블의 pk가 아닌, 참조 객체 그 잡채를 외래키로 작성하잖아요? 즉 DB와 다른 방식을 사용하는 것이므로 무언가 처리가 필요합니다. 그리고 그 처리를 해주는게 JPA 인데,JPA는 우리가 참조 객체를 써주면 자동으로 해당 객체의 pk를 찾아서 DB에 외래키로 작성해줍니다. (그래서 JPA를 ORM 기술이라고도 부르죵.) 기본적으로, JPA가 생성해주는 외래키 이름(name)은 "참조 필드 이름_참조하는 객체의 pk"예요. 근데 우리가 기본으로 생성해주는 외래키 이름말고, 다른 이름으로 바꿔서 테이블에 저장하고 싶을 수 있져? 그때 쓰라고 나온게 name 속성입니다. name 속성 알아보기..
연관관계 편의 메서드는 왜 작성해야할까?
·
Spring/스프링 Data JPA
탐색 Comment와 Post 사이의 관계를 생각해보자. 당연하게도 다대일 관계를 가지고 있을 것이고, 각각의 클래스는 아래와 같이 작성될 것이다. @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @ToString(of = "content") @Builder @AllArgsConstructor @DynamicUpdate @DynamicInsert public class Comment extends BaseTimeEntity{ @Id @GeneratedValue @Column(name = "comment_id") private Long id; private String content; @ManyToOne(fetch = FetchType..
@Builder,@NoArgsConstructor(AccessLevel.PROTECTED),@AllArgsConstructor
·
Spring/스프링 Data JPA
https://velog.io/@maketheworldwise/Builder-AllNoArgsConstructor-%EC%A0%9C%EB%8C%80%EB%A1%9C-%EC%95%8C%EA%B3%A0-%EC%82%AC%EC%9A%A9%ED%95%98%EC%9E%90 @Builder, @All/NoArgsConstructor 제대로 알고 사용하자! USE BUILDER ANNOTATION PROPERLY velog.io https://hyeonic.tistory.com/191 [JPA] 왜 JPA의 Entity는 기본 생성자를 가져야 하는가? 왜 JPA의 Entity는 기본 생성자를 가져야 하는가? 정확히 이야기하면 Entity는 반드시 파라미터가 없는 생성자가 있어야 하고, 이것은 public 또는 pro..