Setter가 모두 열려있으면, 변경 포인트가 너무 많아서 유지보수가 어렵다.
연관관계를 로딩할 때, 연결된 모든 연관데이터를 전부 다 불러오는 기능이다. 따라서 어떤 SQL이 실행될지 추적하기 어렵다
따라서 모든 연관관계는 지연로딩( LAZY )으로 설정해야 한다.
연관된 엔티티를 함께 DB에서 조회해야 하면, fetch join 또는 엔티티 그래프 기능을 사용한다.
@XToOne(OneToOne, ManyToOne) 관계는 기본이 즉시로딩이다. 따라서 직접 지연로딩으로 설정해야 한다.
컬렉션이 자주 바뀌면 hibernate가 잘 잡지 못할 수도 있다. 따라서 가능하면 바꾸지 말자.
엔티티의 필드명을 그대로 테이블의 컬럼명으로 사용
( SpringPhysicalNamingStrategy )