AI교육과정 - Spring.6

단비·2022년 12월 12일
0

AI교육과정

목록 보기
45/69
  • ctrl + shift + T
    • Test 클래스 생성
    • 메소드에 @SpringBootTest 어노테이션을 활성화 시켜줘야함

  • 리스너
    • 이벤트 종류
      • PostLoad
        • 엔티티가 영속성 컨텍스트에 조회된 직후
      • PrePersist
        • 새로운 인스턴스를 merge할 때 수행. persist() 메소드를 호출해서 엔티티를 영속성 컨텍스트에 관리하기 직전에 호출
      • PreUpdate
        • flush, commit를 호출해서 엔티티를 데이터베이스에 수정하기 직전에 호출
      • PreRemove
        • remove 메소드를 호출해서 엔티티를 영속성 컨텍스트에서 삭제하기 직전에 호출
      • PostPersist
        • flush, commit를 호출해서 엔티티를 데이터베이스에 저장한 직후에 호출
      • PostUpdate
        • flush, commit를 호출해서 엔티티를 데이터베이스에 수정한 직후에 호출
      • PostRemove
        • remove 메소드를 호출해서 엔티티를 영속성 컨텍스트에서 삭제한 직후에 호출
  • @EntityListeners(AuditingEntityListener.class)
    • AuditingEntityListener class가 callback listener로 지정되어 Entity에서 이벤트가 발생할 때마다 특정 로직을 수행
    • Spring JPA에서 제공하는 Auditing 기능을 가진 EntityListener를 엔티티 리스너로 적용
  • @MappedSuperclass (부모클래스에 정의)
    • 상속관계 매핑 : 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑하는 것

    • 공통 매핑 정보가 필요할 때 사용

    • JPA Entity 클래스들이 해당 Entity 클래스를 상속할 경우 상속받은 Entity 클래스에 컬럼으로 포함

      @EqualsAndHashCode(callSuper = true): 두 객체의 값이 같은지, 같은 객체인지 비교

    • callSuper = true: 부모 클래스 필드값들도 동일한지 체크

    • callSuper = false(기본값): 자신 클래스의 필드값만 고려

      @ToString(callSuper = true)

      toString() : 객체가 가지고 있는 정보나 값들을 문자열로 만들어 Return하는 method

    • 클래스의 변수들을 기반으로 toString메소드를 만들어줌

    • callSuper = true: 상속받은 클래스까지 toString()에 포함되어 출력되도록 설정

  • @NoArgsConstructor 어노테이션
    • 파라미터가 없는 기본 생성자를 생성해줌
  • @AllArgsConstructor 어노테이션
    • 모든 필드 값을 파라미터로 받는 생성자를 만들어줌
  • 연관 관계 매핑
    • 테이블 간의 연관 관계가 있을 때 객체지향스럽게 사용하는 방법을 제공

    • 데이터베이스에서는 외래키를 사용하지만, JPA에서는 객체를 참조하는 방식으로 연관 관계를 매핑함

      @OneToOne: 하나의 엔티티가 하나의 엔티티와 연관 관계를 맺을 때 사용

      @OneToMany: 하나의 엔티티가 여러개의 엔티티와 연관 관계를 맺을 때 사용

      @ManyToOne: 여러개의 엔티티가 하나의 엔티티와 연관 관계를 맺을 때 사용

      @ManyToMany: 여러개의 엔티티가 여러개의 엔티티와 연관 관계를 맺을 때 사용

  • FetchType
    • LAZY(지연로딩)
      • 참조 객체들의 데이터들은 무시하고 해당 엔티티의 데이터만을 가져오는 방법
      • 참조 객체의 데이터를 사용하기 위해 여러 번의 쿼리를 사용
    • EAGER(즉시로딩)
      • 하나의 객체를 DB로부터 읽어올 때 참조 객체들의 데이터까지 전부 읽어오는 방법
      • 한 번의 쿼리로 모든 정보를 가져옴
profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글