목차

Hibernate

  • description : Hibernate
  • author : 오션
  • email : shlim@repia.com
  • lastupdate : 2022-12-28 Wed

Hibernate ORM

Object/Relational Mapping

하이버네이트(Hibernate) ORM을 사용하면 개발자는 애플리케이션 프로세스보다 더 오래 지속되는 애플리케이션을 보다 쉽게 작성할 수 있습니다.
Object/Relational Mapping(ORM, 객체 관계형 매핑) 프레임워크인 하이버네이트는, JDBC로 관계형 데이터베이스에 적용되므로 데이터 지속성과 관련이 있습니다.

JPA Provider

하이버네이트는 자체 native API를 가지고 있으며, Java Persistence API (JPA) 사양의 구현체이기도 합니다.
Java SE 애플리케이션, Java EE 애플리케이션 서버, Enterprise OSGI 컨테이너 등 JPA를 지원하는 모든 환경에서 쉽게 하이버네이트를 사용할 수 있습니다.

Idiomatic persistence (관용구 지속성?)

하이버네이트를 사용하면 상속성(inheritance), 다형성(polymorphism), 연결(association), 구성(composition), 그리고 Java 컬렉션 프레임워크를 포함하는
객체 지향 관용구를 따르는 영속 클래스(persistent classes)를 개발할 수 있습니다.
하이버네이트는 영속 클래스를 위한 인터페이스나 기본 클래스를 필요로 하지 않으며, 모든 클래스 또는 데이터 구조가 영구적일 수 있도록 합니다.

사용 예제

public class Person {
    private String name;
    private String height;
    private String weight;
    private String ssn;
    // implement getter & setter methods
}


<SELECT id="getPerson" resultClass="net.agilejava.person.domain.Person">
    SELECT name, height, weight, ssn FROM USER WHERE name = #name#;
</select>
해당 쿼리의 결과를 받을 객체를 지정해줄 수 있다. 즉, getPerson이라고 정의된 쿼리 결과는 net.agilejava.person.domain의 Person 객체에 자동으로 매핑되는 것이다.


<hibernate-mapping>
    <class name="net.agilejava.person.domain.Person" table="Person">
        <id name="name" column="name"/>
        <property name="height" column="height"/>
        <property name="weight" column="weight"/>
        <property name="ssn" column="ssn"/>
    <class>
</hibernate-mapping>

Word

Hibernate : (동물이) 동면(冬眠)하다, 겨울잠 자
ORM : Object Relational Mapping

Hibernate ORM
Hibernate ORM - What is Object/Relational Mapping?
[DB]ORM (Object Relational Mapping) 사용 이유, 장단점