Spring

2. 스프링JPA 공부 / 2021-07-13 (준영속 상태)

공대키메라 2021. 7. 13. 23:03

 

준영속 상태

 

Member member = em.find(Member.class, 150L);
member.setName("AAAAA");

em.detach(member); // 특정 엔티티만 준 영속 상태로 만든다

em.clear(); // 통째로 다 초기화

Member member2 = em.find(Member.class,150L); // 앞에서 초기화해서 다시 조회 쿼리가 나감

em.close(); // 영속성 컨텍스트를 종료

 

뭐... 이게 아직은 어디에 쓰일지 모르겟다. 나중에 웹 application 개발할 때 자세히 알려 주신다고 한다.

 

그래서 결국 JPA에서 가장 중요한 2가지는 뭘까?

 

1. 객체와 관계형 데이터베이스 매핑하기

(Object Relational Mapping)

 

2. 영속성 컨텍스트

 

 

그러면 엔티티 매핑은 어케하냐?

 

12강 객체와 테이블 매핑

 

엔티티 매핑을 소개한다

 

- 객체와 테이블 매핑 : @Entity, @Table

- 필드와 컬럼 매핑 : @Column

- 기본 키 매핑 : @Id

- 연관관계 매핑 : @ManyToOne, @JoinColumn

 

@Entity

 

@Entity 가 붙은 클래스는 JPA가 관리한다!

JPA를 사용해서 테이블과 매핑할 클래스는 @Entity  필수

 

◇ 주의

  - 기본 생성자 필수

  - final 클래스, enum, interface, inner 클래스 사용 x

  - 저장할 필드에 final 사용 x

@Entity // jpa에서 이제 관리할게요~!@
@Table(name = "MBR") // name을 설정하지 않으면 class이름과 같은 table찾음. 
public class Member {
	@Id
    private Long id;
    private String name;
    
    public Member(){
    }
    
    public Member(Long id, String name){
    	thid.id = id;
        thid.name = name;
    }
    
    public Long getId(){return id;}
    
    public void setId(Long id){this.id = id;}
    
    public String getName(){return name;}
    
    public void setName(String name){this.name = name;}
}