양방향 연관관계에서는 연관관계의 주인
양방향 연관관계에서는 연관관계의 주인을 정해야한다. 일대다 관계에서는 다에 무조건 외래 키가 존재하게된다.
테이블, 컬럼명
테이블명과 컬럼명은 보통 대문자 + _ 또는 소문자 + _ 을 사용한다.
@Embeddable, @Embedded
Entity에서 어떤 정보를 표현할 때, 연관되어있는 프로퍼티들을 클래스로 분리하여 관리할 수 있다. 분리한 클래스는 @Embeddable 어노테이션을 클래스 레벨에, Entity에는 @Embedded를 필드에 지정해주므로써 구현한다.
@Entity 에 @Setter 대신에 비지니스 메소드를 만들어서 사용할 것
로직이 복잡해지고 세터를 통해 데이터를 변경하는 것을 여러 곳에서 하다보면 문제가 발생했을 때 추적이 매우 힘들어진다. 데이터의 수정이 필요한 곳이 있으면 거기에 맞는 메소드를 구현하여 사용하는게 좋다.
엔티티의 컬렉션은 필드에서 초기화
다른 필드들과 다르게 컬렉션만 초기화를 필드에서 해준다. NPE를 막을 뿐만 아니라 하이버네이트가 데이터가 변경될 때 감지할 수 있는 컬렉션으로 변경한다. 하지만 개발자가 임의로 초기화를 하게되면 하이버네이트가 관리하지 못하는 컬렉션이 되므로 정상 동작하지 않을 수 있다.
https://www.inflearn.com/questions/258175
'TIL' 카테고리의 다른 글
[TIL 2022-2-8] HTTP 헤더 공부 (0) | 2022.02.08 |
---|---|
[TIL 2022-2-7]JPA 공부 실용편1 끝!! (0) | 2022.02.08 |
[TIL 2022-2-4] Spring JPA 공부 시작!! (0) | 2022.02.05 |
[TIL 2022-2-2] 로그인 페이지 뷰 구현 + 생성자에 따른 @ModelAttribute의 동작 방법 (0) | 2022.02.02 |
[TIL 2022-2-1] Spring MVC 공부 (0) | 2022.02.02 |