-
고급매핑 - @MappedSuperclass김영한(인프런 강의)/자바 ORM 표준 JPA 프로그래밍 2020. 10. 22. 12:10반응형
@MappedSuperclass
아래와 같이 공통 매핑 정보가 필요 할 때 사용함
1. 특징
1) 공통 매핑 정보가 필요할 때 사용(id, name)
2) 상속관계 매핑X
3) 엔티티X, 테이블과 매핑X
4) 부모 클래스를 상속 받는 자식 클래스에 매핑 정보만 제공
5) 조회, 검색 불가(em.find(BaseEntity) 불가)
6) 직접 생성해서 사용할 일이 없으므로 추상 클래스 권장
7) 테이블과 관계 없고, 단순히 엔티티가 공통으로 사용하는 매핑 정보를 모으는 역할
8) 주로 등록일, 수정일, 등록자, 수정자 같은 전체 엔티티에서 공통 으로 적용하는 정보를 모을 때 사용
9) @Entity 클래스는 엔티티나 @MappedSuperclass로 지 정한 클래스만 상속 가능
2. 코드
@Entity public class Team extends BaseEntity{ @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String name; Getter(), Setter()... }
@Entity public class Member extends BaseEntity { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String name; private int age; Getter(), SEtter()... }
public class JpaStudyApplication { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); // 트랜잭션 시작 tx.begin(); try { Member member = new Member(); member.setName("김진석"); member.setCreateBy("Kim Jin Seok"); member.setCreatedDate(LocalDateTime.now()); em.persist(member); tx.commit(); // [트랜잭션] 커밋 } catch (Exception e) { tx.rollback(); } finally { em.close(); } emf.close(); } }
3. 실행결과
반응형'김영한(인프런 강의) > 자바 ORM 표준 JPA 프로그래밍' 카테고리의 다른 글
프록시와 연관관계 관리 - 프록시 (0) 2020.10.22 고급매핑 - 실전예제 (0) 2020.10.22 고급 매핑 - 상속관계 매핑 (0) 2020.10.20 연관관계 매핑 기초 - 실전예제 (0) 2020.10.19 다양한 연관관계 매핑 (0) 2020.10.19