JPA에서 객체와 테이블을 어떻게 매핑하는지 자세히 알아보자.
@Entity
public class Member {
@Id
private Long id;
private String name;
public Member() {
}
}
만약 DB에 있는 테이블명고 객체명이 다른데 매핑을 해야한다면 @Table을 사용해주면 된다.
@Entity
@Table(name="User")
public class Member {
@Id
private Long id;
private String name;
public Member() {
}
}
@Entity
public class Member {
@Id
private Long id;
@Column(name="username")
private String name;
public Member() {
}
}
@Column(name="username")
private String name;
@Column(insertable = false, updatable = true)
private String name;
@Column(nallable = false)
private String name;
@Entity
// @Column(unique = true)와는 다르게 이름 지정 가능
@Table(uniqueConstraints = ...)
public class Member {
@Id
private Long id;
@Column(unique = true) // 유니크 제약조건을 만들어주지만 랜덤이름
private String name;
public Member() {
}
}
@Column(length = 140) // = varchar(140)
private String name;
@Column(columnDefinition = "varchar(180) default 'OK'")
private String name;
등 여러 가지 속성이 있다.
public enum Roletype {
USER, ADMIN
}
@Entity
public class Member {
@Id
private Long id;
@Column(name="username")
private String name;
@Enumerated(EnumType.STRING)
private Roletype type;
public Member() {
}
}
@Entity
public class Member {
@Id
private Long id;
@Lob
public String description;
public Member() {
}
}
@Entity
public class Member {
@Id
private Long id;
@Transient
public String etc;
public Member() {
}
}
@Entity
public class Member {
@Id
private Long id;
public Member() {
}
}
@Entity
public class Member {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
...
}
@Entity
public class Member {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
...
}
JPA를 사용하면서 직접 매핑을 해보면서 익숙해져야한다.
자바 ORM 표준 JPA 프로그래밍-기본편을 학습하면서 정리한 블로그입니다.