[JPA] XML을 통한 매핑

joyful·2021년 7월 13일
0

JPA

목록 보기
7/18

📖 개요

Annotation 외에도 XML(매핑파일명.xml)을 통해 엔티티를 설정하는 것도 가능하다.


📖 경로

  • 기본 파일 경로
    • 클래스 패스 내의 META-INF/매핑파일명.xml
    • 별도의 설정 없이 JPA가 자동 인식
  • 별도 경로
    • persistence.xml<mapping-file>패키지.매핑파일명.xml</mapping-file> 형태로 기술

📖 예시

📝 Employee 엔티티 클래스

public class Employee {

   private int eid;
   private String ename;
   private double salary;
   private String deg;

   public Employee(int eid, String ename, double salary, String deg) {
      super( );
      this.eid = eid;
      this.ename = ename;
      this.salary = salary;
      this.deg = deg;
   }

   public Employee( ) {
      super();
   }

   public int getEid( ) {
      return eid;
   }
   
   public void setEid(int eid) {
      this.eid = eid;
   }
   
   public String getEname( ) {
      return ename;
   }
   
   public void setEname(String ename) {
      this.ename = ename;
   }

   public double getSalary( ) {
      return salary;
   }
   
   public void setSalary(double salary) {
      this.salary = salary;
   }

   public String getDeg( ) {
      return deg;
   }
   
   public void setDeg(String deg) {
      this.deg = deg;
   }
}

📝 mapping.xml

<? xml version="1.0" encoding="UTF-8" ?>

<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm    
   http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
   version="1.0">
      
   <description> XML Mapping file</description>
      
   <entity class="Employee">        
      <table name="EMPLOYEETABLE"/>
      <attributes>
      
         <id name="eid">
            <generated-value strategy="TABLE"/>
         </id>

         <basic name="ename">
            <column name="EMP_NAME" length="100"/>
         </basic>
         
         <basic name="salary">
         </basic>
         
         <basic name="deg">
         </basic>
         
      </attributes>
   </entity>
   
</entity-mappings>

🔎 태그

  • <entity-mappings> : xml 파일에 엔티티 태그를 허용하는 스키마 정의를 정의
  • <description> : 애플리케이션에 대한 설명 정의
  • <entity> : 데이터베이스에서 테이블로 변환하려는 엔티티 클래스 정의
  • <table> : 테이블 이름 정의
  • <attributes> : 속성(테이블의 필드) 정의
  • <id> : 테이블의 기본 키 정의
  • <basic> : 테이블의 나머지 속성 정의
  • <column-name> : 사용자 정의 테이블 필드 이름 정의



📖 참고

profile
기쁘게 코딩하고 싶은 백엔드 개발자

0개의 댓글