Hibernate-파일 매핑
객체 / 관계형 매핑은 일반적으로 XML 문서에 정의됩니다. 이 매핑 파일은 Hibernate에 지시합니다 — 정의 된 클래스 또는 클래스를 데이터베이스 테이블에 매핑하는 방법?
많은 Hibernate 사용자가 XML을 직접 작성하기로 선택했지만 매핑 문서를 생성하기위한 많은 도구가 존재합니다. 여기에는XDoclet, Middlegen 과 AndroMDA 고급 Hibernate 사용자를위한 것입니다.
다음 섹션에 정의 된 테이블에서 객체가 지속될 이전에 정의 된 POJO 클래스를 고려해 보겠습니다.
public class Employee {
private int id;
private String firstName;
private String lastName;
private int salary;
public Employee() {}
public Employee(String fname, String lname, int salary) {
this.firstName = fname;
this.lastName = lname;
this.salary = salary;
}
public int getId() {
return id;
}
public void setId( int id ) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName( String first_name ) {
this.firstName = first_name;
}
public String getLastName() {
return lastName;
}
public void setLastName( String last_name ) {
this.lastName = last_name;
}
public int getSalary() {
return salary;
}
public void setSalary( int salary ) {
this.salary = salary;
}
}
지속성을 제공하려는 각 개체에 해당하는 하나의 테이블이 있습니다. 위의 객체가 다음 RDBMS 테이블에 저장되고 검색되어야한다고 생각하십시오-
create table EMPLOYEE (
id INT NOT NULL auto_increment,
first_name VARCHAR(20) default NULL,
last_name VARCHAR(20) default NULL,
salary INT default NULL,
PRIMARY KEY (id)
);
위의 두 엔티티를 기반으로 우리는 Hibernate에게 정의 된 클래스 또는 클래스를 데이터베이스 테이블에 매핑하는 방법을 지시하는 다음 매핑 파일을 정의 할 수 있습니다.
<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name = "Employee" table = "EMPLOYEE">
<meta attribute = "class-description">
This class contains the employee detail.
</meta>
<id name = "id" type = "int" column = "id">
<generator class="native"/>
</id>
<property name = "firstName" column = "first_name" type = "string"/>
<property name = "lastName" column = "last_name" type = "string"/>
<property name = "salary" column = "salary" type = "int"/>
</class>
</hibernate-mapping>
매핑 문서는 <classname> .hbm.xml 형식의 파일에 저장해야합니다. Employee.hbm.xml 파일에 매핑 문서를 저장했습니다.
매핑 파일에서 사용되는 매핑 요소에 대해 조금 자세히 살펴 보겠습니다.
매핑 문서는 <hibernate-mapping> 모든 항목을 포함하는 루트 요소로 <class> 집단.
그만큼 <class>요소는 Java 클래스에서 데이터베이스 테이블로의 특정 매핑을 정의하는 데 사용됩니다. Java 클래스 이름은name 클래스 요소 및 데이터베이스의 속성 table 이름은 테이블 속성을 사용하여 지정됩니다.
그만큼 <meta> 요소는 선택적 요소이며 클래스 설명을 작성하는 데 사용할 수 있습니다.
그만큼 <id>요소는 클래스의 고유 ID 속성을 데이터베이스 테이블의 기본 키에 매핑합니다. 그만큼name id 요소의 속성은 클래스의 속성을 참조하고 column속성은 데이터베이스 테이블의 열을 나타냅니다. 그만큼type 속성은 최대 절전 모드 매핑 유형을 보유하며이 매핑 유형은 Java에서 SQL 데이터 유형으로 변환됩니다.
그만큼 <generator>id 요소 내의 요소는 기본 키 값을 자동으로 생성하는 데 사용됩니다. 그만큼class 생성기 요소의 속성이 다음으로 설정됩니다. native 최대 절전 모드에서 identity, sequence, 또는 hilo 기본 데이터베이스의 기능에 따라 기본 키를 만드는 알고리즘.
그만큼 <property>요소는 Java 클래스 속성을 데이터베이스 테이블의 열에 매핑하는 데 사용됩니다. 그만큼name 요소의 속성은 클래스의 속성을 참조하고 column속성은 데이터베이스 테이블의 열을 나타냅니다. 그만큼type 속성은 최대 절전 모드 매핑 유형을 보유하며이 매핑 유형은 Java에서 SQL 데이터 유형으로 변환됩니다.
사용할 수있는 다른 속성과 요소가 있는데, 이는 매핑 문서에서 사용될 것이며 다른 Hibernate 관련 주제를 논의하면서 가능한 한 많이 다루려고 노력할 것입니다.