안녕하세요 저번 시간에는 JPA의 상속관계에 대해서 자세히 알아보았는데요
[Spring] JPA의 상속관계
인프런에 영한님 강의를 듣고 정리해본 블로그 게시물입니다. JPA 연관관계(단방향/양방향 , 다중성) 인프런에 영한님 강의를 듣고 정리해본 블로그 게시물입니다. [Spring] JPA의 연관관계(단방향/
nosechild.tistory.com
이번 시간에는 이름은 상속관계처럼 보이지만 아닌 @MappedSuperclass의 개념과
사용하는 방법에 대해서 알아보겠습니다.
@MappedSuperclass

앞에 배웠던 상속관계 매핑이 아닙니다. 엔티티 매핑도 안하고 테이블 매핑도 안합니다.
부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공합니다. 조회, 검색이 불가합니다.
직접 생성해서 사용할 일이 없으므로 추상 클래스로 만드는 것을 권장합니다.
정리
테이블과 관계없고, 단순히 엔티티가 공통으로 사용하는 매핑 정보를 모으는 역할입니다.
주로 등록일, 수정일, 등록자, 수정자 같은 엔티티에서 공통으로 적용하는 정보를 모을 때 사용합니다.
참고 : @Entity 클래스는 엔티티나 @MappedSuperclass로 지정한 클래스만 상속가능합니다.
<예시 코드>
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity extends TimeEntity{
@CreatedBy
@Column(updatable = false)
private String createdBy;
@LastModifiedBy
private String modifiedBy;
}
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class TimeEntity {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createDate;
@LastModifiedDate
private LocalDateTime modifiedDate;
}
@Entity
@Data
@Table(name = "member")
@NoArgsConstructor
public class Member extends BaseEntity{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "member_id")
private Long id;
private String name;
@ManyToOne
@JoinColumn(name="team_id")
private Team team;
@OneToOne
@JoinColumn(name="locker_id")
private Locker locker;
@Builder
public Member(Long id,String name) {
this.name = name;
this.id = id;
}
}
JPQL

이번에 시간에는 간단하게 @MappedSuperclass에 대해서 알아보았는데요
코드를 보시면 @EntityListeners(AuditingEntityListener.class)가 있는데 간단하게 데이터베이스에서 새로운 튜플이 만들어 질 때 생성시간과 수정시간을 넣을 수 있는 에노테이션이라고 생각하면 되고, 생성자와 수정자 같은 경우 세션에서 받아와야해서 Spring Security를 활용을 해서 수동으로 @Bean에 등록을 해줘야 하는데 이건 다음 시간에 알아보도록 하자
'java and sping' 카테고리의 다른 글
| [Spring] JPA의 Fetch Join에 대해서? (0) | 2023.05.30 |
|---|---|
| [Spring] ORM(JPA, Django 등)에서의 제일 큰 N + 1 문제 ?(Fetch 조인) (0) | 2023.05.25 |
| [Spring] JPA의 상속관계 (0) | 2023.05.03 |
| JPA 연관관계(단방향/양방향 , 다중성) (0) | 2023.05.02 |
| [Spring] JPA의 연관관계(단방향/양방향, 연관 관계의 주인) (0) | 2023.04.27 |