JPA

기본값 타입

salmon16 2023. 8. 31. 21:30

JPA는 데이터 타입을 2가지로 분류한다.

  • 엔티티 타입
    • @Entity로 정의하는 객체
    • 데이터가 변해도 식별자로 지속해서 추적가능
    • 예) 회원 엔티티의 키나 나이 값을 변경해도 식별자(Id)는 유지되기 때문에 인식 가능 
  • 값 타입
    • int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체
    • 식별자(id)가 없고 값만 있으므로 변경 시 추적 불가능
    • 예) 숫자 100을 200으로 변경하면 완전히 다른 값으로 대체

값 타입

  • 기본값 타입
    • 자바 기본 타입(int, double)
    • 래퍼 클래스 (Integer, Long)
    • String
  • 임베디드 타입 
  • 컬렉션 값 타입 

기본값 타입

  • 예) String name, int age
  • 생명주기를 엔티티에 의존
    • 예) 회원 엔티티를 삭제하면 이름, 나이 필드도 같이 삭제
  • 값 타입은 공유하면 안된다.
    • 예) 회원 이름을 변경 시에 다른 회원의 이름도 변경이 되면 안 된다.

참고

  • 자바에서 기본 타입은 공유되지 않는다.
  • 기본 타입은 항상 복사해서 사용된다.
int a = 10;
int b = a; // 복사

a = 20;
// a : 20 공유 안된다.
// b : 10
  • Integer 같은 래퍼 클래스나 String 같은 특수 클래스는 공유 가능한 객체이지만 값을 변경할 수 없다. 

 

 

'JPA' 카테고리의 다른 글

값 타입, 값 타입 컬렉션  (0) 2023.09.01
임베디드 타입  (0) 2023.08.31
영속성 전이 : CASCADE, 고아객체  (0) 2023.08.31
즉시 로딩과 지연 로딩  (0) 2023.08.30
프록시와 연관관계 관리  (0) 2023.08.30