Hibernate annotation 관련 문의
안녕하세요.
3.2.1 버젼에 core에 hibernate-annotation 부분이 들어있어서,
해당 부분도 anyframe 영역으로 들어 왔을거라(?) 가정하고 질문드립니다.
테이블 갯수가 많아지면서, hibernate vo, hbm.xml 파일을 각각 관리하기가 너무 불편해서
vo에 annotation을 적용하는 시도를 계속 시행중에 있습니다.
타 사이트와 외국 사이트에서 문서를 뒤졌는데, 해당 내용이 없는것 같아서,
혹시 이런경우에 hibernate annotation으로 처리되는지 문의드립니다.
모든 테이블에 공통으로 쓰는 필드들이 있습니다. id, name, description, createuser, updateuser, createtime, updatetime 등등등...
모든 테이블의 키는 id로 되어 있으며 이를 예를들어 parentvo.java 로 만들어 놓고
나머지는 각 테이블당 vo를 하나씩 만들고, parentvo를 상속받아서 하고자 합니다.
이때 annotation으로 key를 주는 방법을 알고 싶습니다.
테이블 : 필드
a1 : id, name, description, createuser, updateuser, createtime, updatetime, a1 특화 필드
a2 : id, name, description, createuser, updateuser, createtime, updatetime, a2 특화 필드
a3 : id, name, description, createuser, updateuser, createtime, updatetime, a3 특화 필드
vo
parent
(string id, string name, ....)
a1 extends parent
(a1 특화부분)
a2 extends parent
(a2 특화부분..)
이런 부분을 annotation으로 하고자 하면 어떻게 하는지 궁금합니다. 타 테이블 연관관계는 전혀 없습니다.
감사합니다.


위와 같은 방식으로 JPA annotation을
위와 같은 방식으로 JPA annotation을 사용하기 위해서는 TABLE_PER_CLASS Mapping 타입을 적용해야합니다.
이에 대한 상세한 예제는 아래와 같습니다.
// parent class
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class BillingDetails implements Serializable {
@Id
@Column(name="BILLING_DETAILS_ID")
private Long id = null;
@Column(name="OWNER", nullable=false)
private String owner;
....
}
// child class
@Entity
@Table(name="CREDIT_CARD")
public class CreditCard extends BillingDetails {
@Column(name="NUMBER", nullable=false)
private String number;
....
}