단점

  • Metadata is not, by nature, more flexible or maintainable than plain Java code.
  • Many existing metadata formats weren't designed to be
    readable and easy to edit by hand. 적절한 기본값을 제공해주지 않아서 필요 이상의 타이핑이 필요하다.
    속성없이 엘리먼트만 사용하는 경우도 있다.
  • Good XML editors, especially in IDEs, aren't as common as
    good Java coding environments. DTD가 제공되지 않아서 자동완성과 검증 기능을 사용하지 못하는 경우가
    있다.

하이버네이트의 XML

  • 위의 모든 단점을 고려했다.
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

<class name="auction.model.Category" table="CATEGORY">
<id name="id" column="CATEGORY_ID" type="long">
<generator class="native"/>
</id>
<property name="name" column="NAME" type="string"/>
</class>

</hibernate-mapping>
  • 여러 클래스 맵핑 정보를 하나의 파일 안에 모두 두는 것도 가능하지만 클래스 당 매핑 파일 하나를 권장한다.
  • 맵핑 파일은 클래스와 같은 패키지에 놓는것을 권장한다.