BackEnd/Spring Boot

JPA Entity 작성_1 (공통, 같은 테이블)

Raconer 2023. 5. 15. 22:33
728x90

1. 공통 Entity

JPA를 사용하면 데이터베이스의 테이블과 자바 객체를 매핑할 수 있습니다.
때로는 여러 개의 엔티티에서 공통으로 사용되는 필드를 가지는 공통 엔티티를 만들고 싶을 수 있습니다.
이러한 상황에서는@MappedSuperclass 사용하여 공통 엔티티를 생성할 수 있습니다.

    @MappedSuperclass
    public class CommonEntity {

        @Column
        private Date registDate;

        @Column
        private Date modDate;
    }

2. 같은 테이블에서 ID를 설정 할때

보통 카테고리나 댓글을 만들때 대댓글, 부모 카테고리를 선언하기도 하는데 같은 테이블 내에서 선언한다.
이를 위해 아래와 같이 선언하면된다.

  @Entity
  @Table(name = "category")
  public class CategoryEntity extends CommonEntity {

      @Id
      @GeneratedValue(strategy = GenerationType.IDENTITY)
      private Long id;

      @ManyToOne(fetch = FetchType.LAZY)
      @JoinColumn(name = "parentEntity")
      private CategoryEntity parentEntity;

      @Column
      private String name;

  }
  • @ManyToOne(fetch = FetchType.LAZY)
    • 다대일(N:1) 관계를 정의하는 어노테이션입니다. 한 부모 카테고리에 여러 개의 자식 카테고리가 속할 수 있습니다.
728x90

'BackEnd > Spring Boot' 카테고리의 다른 글

JPA란?  (0) 2023.05.21
영속성 이란?  (0) 2023.05.21
jasypt 설정 하기  (0) 2023.05.01
jasypt 란?  (0) 2023.05.01
mysql-connector-j와 mysql-connector-java  (0) 2023.04.30