실습 환경
ORM은 object relational mapping의 줄임말로 객체 관계 매핑을 의미합니다. 자바와 같은 객체 지향 언어 에서 의미하는 '객체' 와 RDB(realtional database)의 테이블을 자동으로 매핑하는 방법입니다.
객체지향의 언어에서 Class => RDB 테이블을 매칭시키빈다.
ORM 을 사용하면 데이터베이스 쿼리를 직접 작성하여 사용하지않고 ORM을 통해 메서드(함수) 형태로, 객체지향적으로 조작할 수 있습니다.
고려할 만한 단점
하이버네이트는 자바 orm 프레임워크로 jpa가 정의하는 인터페이스를 구현하고 잇는 jpa 구현체중 하나입니다. Spring data jpa를 활용합니다.
jpa는 자바에서 orm 표준기술로 채텍된 인터페이스 모음입니다.
jpa는 orm의 구체화된 스펙을 포함 합니다.
엔티티 클래스의 필드는 테이블의 칼럼과 매핑됩니다. @Id 어노테이션이 선언된 필드는 테이블의 기본값의 역할로사용됩니다.(primary key 와 유사)
일반적으로 @Id 어노테이션과 함께 사용되고 해당 필드값 생성시 어떤식으로 장동으로 값을 생성할지 결정합니다.
값생성 방식
generatedValue를 사용하지않을경우( 직접 할당)
Auto
Identity
Sequence
전통적인 mvc 패턴에서 주로 DAO(data access object) 를 jpa에선 repository가 하여 객체를 반환한다.
Entity와 관련된 Repository를 만들고 JpaRepository를 상속받아 사용한다.
//entity
@Entity
@Setter
//그외 필요한 어노테이션등 ..
public class Product{
@Id
private Long id;
private String name
}
//example 실제사용하는 ProductRepository
public interface ProductRepository extends JpaRepository<Product, Long>{
}
위의 repository의 경우 Product 객체를 반환하고 일반적으로 Product Class의 @Id 로선언된 형태인 Long으로 객체를 매핑한다.