아래 코드를 통해 jpa의 기본에 대해서 알아보자
@Entity(name = "Users")
public static class Users {
@Id @GenerateValue
private Integer id;
@Column(name = "username")
private Name name;
private String age;
private String password;
@Transient
private boolean check;
@Temporal(TemporalType.TIMESTAMP)
private LocalDateTime loginDate;
}
@Embeddable
public class Name {
private String firstName;
private String middleName;
private String lastName;
}
jpa기초
@Entity
- 기본적으로 @Entity를 등록을 해야 jpa가 인식을 하고 매핑해준다
- Entity의 이름을 내가 지정할 수 있지만 예약어는 피해야 한다. ex)order
- @Id를 필수로 가져야 하며 기본 생성자도 가지고 있어야 한다.
@Id
- PK를 지정해주는 것으로 필수이다.
- @GenerateValue와 같이 쓰면 자동으로 d를 만들어 준다. (단 strategy에 따라 내가 직접 Id를 위한 테이블 또는 sequence를 만들어 줘야 할 수도 있음)
@Embeddable
- 값 타입을 선언하는 것으로 @Embeddable를 선언하고 나서는 @Entity안에 값으로 넣을 수 있다.
- 내가 넣은 곳에 @Embedded를 선언해 줘도 된다.
@Column
- 컬럼을 지정하는 어노테이션으로 속성으로 name, insertable등을 지정해 줄 수 있다.
@Temporal
- 날짜 값에 붙여 주는 것으로 LocalDateTime을 사용한다면 생략이 가능하다.
@Transient
- 매핑하지 않겠다는 것을 알려주는 어노테이션이다. (메모리에서만 사용 가능)
출처 : hibernate 공식 문서