[java] Hibernate에서 엔티티 클래스와 데이터베이스 테이블의 매핑 방법은?
  1. 어노테이션을 사용한 매핑: Hibernate에서는 JPA(Java Persistence API)와 함께 어노테이션 기반의 매핑을 제공합니다. 엔티티 클래스에 어노테이션을 사용하여 테이블을 정의하고, 각 필드를 테이블의 컬럼과 매핑합니다. 다음은 예시입니다.

    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    @Entity
    @Table(name = "employees")
    public class Employee {
        @Id
        private Long id;
        private String name;
        // ...
    }
    
  2. XML 파일을 사용한 매핑: Hibernate에서는 XML 파일을 사용하여 엔티티 클래스와 데이터베이스 테이블 간의 매핑을 정의할 수도 있습니다. 엔티티 클래스와 관련된 매핑 정보를 포함하는 XML 파일을 작성하고, Hibernate 설정 파일에서 해당 XML 파일을 참조합니다. 다음은 예시입니다.

    <hibernate-mapping>
        <class name="com.example.Employee" table="employees">
            <id name="id" column="id" type="java.lang.Long">
                <generator class="native" />
            </id>
            <property name="name" column="name" type="java.lang.String" />
            <!-- ... -->
        </class>
    </hibernate-mapping>
    
  3. 주석을 사용한 매핑: Hibernate에서는 엔티티 클래스의 주석을 사용하여 매핑 정보를 정의할 수도 있습니다. 주석을 사용한 매핑은 어노테이션 방식과 유사하지만, 코드 중간에 매핑 정보를 작성해야 한다는 점이 다릅니다. 다음은 예시입니다.

    import javax.persistence.Entity;
    import javax.persistence.Id;
    
    @Entity
    // @Table(name = "employees")
    public class Employee {
        @Id
        private Long id;
    
        // @Column(name = "name")
        private String name;
        // ...
    }
    

위의 예시에서는 주석을 사용한 매핑과 XML을 사용한 매핑은 주석 처리되어 있어, 실제로는 어노테이션을 사용한 매핑을 사용하고 있습니다. 주석 또는 XML을 사용한 매핑을 선택할 수 있으며, 개발자의 선호도나 프로젝트의 요구사항에 따라 적절한 방식을 선택하면 됩니다.

참고 자료: