맵핑 설정 작명 지침 사용하기 특징 Hibernate provides a feature that allows you to enforce naming standards automatically. 설정하기 NamingStrategy 인터페이스 구현하기 ImprovedNamingStrategy 클래스 상속받아서 구현하기 네임스페이스 등록하기 import org.hibernate.cfg.ImprovedNamingStrategy;import org.hibernate.util.StringHelper;public class CENamingStrategy extends ImprovedNamingStrategy { public String classToTableName(String className) { return
맵핑 설정 SQL문에 따옴표 사용하기 특징 Hibernate doesn’t quote table and column names in the generated SQL. 대소문자를 구분하거나, 특수 문자를 사용하는 기존 DB의 경우 하이버네이트가 자동으로 생성하는 컬럼이나 테이블이름을 인식하지 못할 수도 있다. 설정하기 역따옴표 사용하기 <property name="description"column="`DESCRIPTION`"/> If you quote
맵핑 설정 패키지 이름 설정하기 특징 (XML 설정 파일 이용 시) Persistent 클래스 등록할 때, 패키지 이름까지 붙어있는 이름을 등록해야 한다. 같은 패키지에 위치한 여러 클래스들을 등록할 때 패키지 이름을 매번 붙여주기가 귀찮다. 설정하기 기본 패키지 설정하기 <hibernate-mapping package="auction.model"> <classname="Item" table="ITEM">
맵핑 설정 쿼리에서 사용할 Entity 이름 설정하기 특징 기본으로 모든 클래스 이름들이 자동으로 HQL의 네임스페이스로 import 된다. 즉, HQL에서 패키지 이름을 제외한 클래스 이름을 사용할 수 있다. 서로 다른 패키지에 같은 이름의 클래스가 존재한다면, auto-import를 끄거나, 명시적으로 네임스페이스를 설정해야 한다. 설정하기 HQL에서 사용할 네임스페이스 설정하기 @Entity(name="AuctionItem")public class Item
맵핑 설정 Immutable Entity 만들기 특징 변하지 않아야 할 Persistent 객체가 있을 수 있다. 이런 Persistent 클래스에는 필드로 직접 접근하도록 설정하고, accessor 메소드들을 만들지 않으면 된다. 설정하기 immutable entity 설정하기 @Entity@org.hibernate.annotations.Entity(mutable=false)@org.hibernate.annotations.AccessType("field")public class Bid {} @AccessType은 하이버네이트가 Pesistent 클래스에
맵핑 설정 동적 SQL 생성 특징 기본으로 하이버네이트가 시작할 때, 각각의 Persistent 클래스와 관련된 CRUD 쿼리를 생성한다. UPDATE 문은 모든 필드를 수정하도록 작성되어 있다. Sometimes you can avoid generating any UPDATE statement, if the persistent class is mapped immutable. 설정하기 동적으로 쿼리 생성하도록 설정 @Entity@org.hibernate.annotations.Entity(