학습하는 내용이므로 오류가 있을 수 있습니다.
DB의 User 테이블에 대응되는 Entity Class를 사용하면 JPA를 통해 좀 더 쉽게 쿼리를 실행할 수 있다.
User 테이블이 아래와 같이 설계 되어 있다고 생각해보자.
create table user(
id bigint auto_increment,
name varchar(25),
age int,
primary key (id)
)
원래는 Repository단에서 클래스 메서드 내의 쿼리문을 작성하여 CURD 하였지만, Entity Class를 활용하면 좀 더 수월하다.
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id = null;
@Column(nullable = false, length = 20, name = "name")
private String name;
private Integer age;
protected User() {}
// 생략
위와 같이 클래스 도입부에 @Entity 어노테이션을 붙여주고, 필드 값의 이름과 DB 내의 칼럼 이름과 같은 곳에 어노테이션을 붙여주면 된다. @Id , @Column 과 같이 말이다.
사실 칼럼명과 필드값 이름이 같으면 자동으로 맵핑되어지기에 @Column 어노테이션은 생략해도 된다. (이름이 서로 일치하다면)
@GeneratedValue(strategy = GenerationType.IDENTITY) 이 뜻은 DB에서 Auto_Increment 와 동일한 뜻이다.
그리고! JPA 를 사용하려면 무조건 기본생성자가 하나 존재해야 한다. 따라서 protected User() {} 와 같이 기본생성자를 꼭 만들어주도록 한다.