@Entity
public class Member {
@Id
@Column(name = "MEMBER_ID")
private Long id;
@Column(name = "name", unique = true, length = 10)
private String username;
private int age;
@ManyToOne
@JoinColumn(name = "TEAM_ID")
private Team team;
@Enumerated(EnumType.STRING)
private RoleType roleType;
@Temporal(TemporalType.TIMESTAMP)
private Date createdDate;
@Temporal(TemporalType.TIMESTAMP)
private Date lastModifiDate;
@Lob
private String description;
@Transient
private int temp;
}
@Column 속성
- name - 필드와 매핑할 테이블의 컬럼 설정
- insertable, updateable - 등록, 변경 가능 여부 defalut true
- nullbale - null 값 여부 false로 설정시 not null 제약조건
- unique - 컬럼에 unique 조건 하지만 운영에서는 잘 안씀 unique
제약조건이름이 이상한게 들어감
- columnDefinition - 데이터베이스 컬럼 정보 직접 적용가능
ex) varchar(100) default "EMPTY"
- length - varchar 길이 조정 String 타입에서만 사용
@Enumerated 속성
- EnumType.ORDINAL - enum 순서를 데이터베이스에 저장
- enum 순서가 테이블에 들어가기 때문에 순서가 뒤바뀔경우 문제가 발생
- EnumType.STRING - enum 이름을 데이터베이스에 저장
@Temporal
날짜 컬럼일 경우 어노테이션 넣어줌 LocalDate, LocalDateTime로 대체 가능
@Lob
대용량 컬럼일 경우 어노테이션 넣어줌 문자면 Clob 나머지 blob으로 매핑