Hibernate

    JPA N + 1, FetchJoin, EntityGraph

    JPA N + 1, FetchJoin, EntityGraph

    필자는 Spring Data JPA 를 많이 사용 중에 있다. 초반에 해당 문제로 골머리를 앓았던 기억이 있는데 그때 기억도 나는 겸 다시 정리도 하는 겸하여 정리해보고자 한다. 준비 우선 테스트를 진행해 볼 엔티티를 작성하자. 책과 작가를 엔티티로 삼았으며 책 → 작가를 의존하는 ManyToOne 관계를 맺어주었다. 코드는 아래와 같다. Entity @Entity @Getter @NoArgsConstructor @ToString public class Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; @ManyToOne private Author author; public..

    Spring JPA - Hibernate 에서 field가 Enum일때 @ColumnDefault는 어떻게?

    Spring JPA - Hibernate 에서 field가 Enum일때 @ColumnDefault는 어떻게?

    Spring Boot 기반에 JPA 를 사용하는 중에 Enum 으로 Field를 관리하는 일이 많아졌습니다. 이때 Enum 에 초기값을 DB 단에서 설정해주어도 되고 Entity 객체를 생성할 때 기본으로 할당해주는 방법을 주로 사용하고 있었습니다. 근데 @ColumnDefault 로는 설정을 못해줄까? 라는 의문점이 생겨 적용을 해보았습니다. 아래는 예제 코드입니다. // enum public enum BoardType { NOTICE, FREE, COMMUNITY, ORGANIZATION; } // Entity Class ... @Column(name = "type") @NotNull @Enumerated(value = EnumType.STRING) private BoardType type; ... ..