JPA에서는 comment를 따로 지원하지 않는다. 이게 이유를 찾아보니 일부 데이터베이스가 컬럼 comment를 지원하지 않는 것 같다. 하지만, MySQL에 comment를 달아두고 싶었다(사내 보안 정책이 꼭 달아야한다고 해서 기록해둘라고…)
columnDifinition 속성을 이용하면 된다. 그리고 OneToMany관계에 있는 칼럼에 comment를 달고 싶다면 JoinColumn을 활용하면 된다.
사람1 : 폰N 을 구성하려면 아래와 같이 하면 된다.
Person.java
@Entity
public class Person {
@Id
@GeneratedValue
private long id;
@Column(columnDefinition = "varchar(10) not null comment '이름'")
private String name;
@OneToMany
@JoinColumn(name = "person_id", columnDefinition = "bigint not null comment '사람 아이디'")
private List<Phone> phones;
}
Phone.java
@Entity
public class Phone {
@Id
@GeneratedValue
private long id;
@Column(columnDefinition = "varchar(10) not null comment '휴대폰 이름'")
private String name;
}
아래와 같이 DDL이 생김.
create table if not exists test.person
(
id bigint not null
primary key,
name varchar(10) not null comment '이름'
)
engine=MyISAM;
create table if not exists test.phone
(
id bigint not null
primary key,
name varchar(10) not null comment '휴대폰 이름',
person_id bigint not null comment '사람 아이디'
)
engine=MyISAM;
create index FKs31jcc7fn0j8g0j9truq1fj23
on test.phone (person_idddd);