4.엔티티
Entity란 데이터베이스 테이블과 매핑(Mapping)되는 자바 클래스로, 데이터를 포함하지만 중요한 로직은 포함하지 않는다는 특징이 있음 → 가급적 데이터베이스 테이블에서 사용되는 컬럼들로만 구성하는 것이 권장됨
어떤 자바 클래스가 JPA에서 관리되는 엔티티 클래스가 되기 위해서는, JPA에게 특정 자바 클래스를 엔티티로 관리하도록 명시해주어야 함
1. XML 파일 기반 자바 클래스 - 엔티티 매핑 방식
Hibernate 3.0 버전 이전에는 테이블과 Entity를 맵핑하기 위해 XML 기반의 설정을 사용했음
1-1. Book.java를 데이터베이스 테이블과 맵핑하기 위한 설정 파일 예시
Book.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="dev.syntax.model.Book" table="Book">
<id name="id" type="int">
<column name="id" />
<generator class="identity" />
</id>
<property name="bookName" type="java.lang.String">
<column name="book_name" />
</property>
<property name="author" type="java.lang.String">
<column name="author" />
</property>
<property name="pubDate" type="java.util.date">
<column name="pub_date" />
</property>
</class>
</hibernate-mapping>XML 방식은 JPA 인터페이스를 사용하지 않고, Hibernate 구현체를 직접 사용하는 경우에 적용 가능한 설정 방식으로 본 과정에서 사용할 일은 없음
2. Annotation 기반 자바 클래스 - 엔티티 매핑 방식
2-1. @Entity
자바 클래스를 JPA에서 관리하는 하나의 엔티티 클래스로 적용하기 위한 Annotation
JPA 인터페이스에서 제공하는 javax.persistence패키지의 Annotation을 활용할 경우,
자바 클래스와 엔티티 간의 간단한 매핑 적용 가능
2-2. Book.java를 데이터베이스 테이블과 맵핑하기 위한 설정 파일 예시
Book.java
@Entity
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(name = "book_name", nullable = false)
private String bookName;
private String author;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "pub_date")
private Date pubDate;
}Last updated on