less than 1 minute read

Q. JPA에서 Entity 사용시 기본생성자를 가져야하는 이유

A. JPA에선 엔티티의 인스턴스를 만들 수 있도록 기본 생성자가 있어야한다.

개체 인스턴스화:

JPA가 데이터베이스에서 엔티티를 로드할 때 데이터 베이스의 데이터로 채울 엔티티 클래스의 인스턴스를 생성해야한다. JPA공급자는 리플렉션을 사용하여 인수 없는 생성자를 호출한다.


Q. JPA에서 엔티티를 extend로 상속하는 방법과 Embeddable로 설정하는 방법이 있는데 차이점

A. 상속과 Embedded 의 차이는

클래스 상속을 사용하면 부모아 자식간의 is-a 관계가 성립, 부모 클래스가 추상적이면, 자식 클래스는 구체적 개념이다.

Embedded 타입은 객체를 구성하는 요소 중 일부를 공유하고자 사용

이는 has-a 관계가 성립한다.

상속관계를 사용하면 데이터 베이스에서는 부모 클래스와 자식 클래스 각각의 테이블로 생성, 객체간 계층 구조를 형성한다.

Embedded는 하나의 테이블로 생성, Embedded 구성하는 객체를 재사용하고자 할 때 사용

즉, 상속 관계와 Embedded는 다른 개념이며 상황에 따라 적절히 선택하여 사용하여야함

Updated: