[Spring] Entity Class

정석·2024년 3월 3일

Spring

목록 보기
9/21
post-thumbnail

학습하는 내용이므로 오류가 있을 수 있습니다.

DB의 User 테이블에 대응되는 Entity Class를 사용하면 JPA를 통해 좀 더 쉽게 쿼리를 실행할 수 있다.

User 테이블이 아래와 같이 설계 되어 있다고 생각해보자.

  • User 테이블
create table user(
  id bigint auto_increment,
  name varchar(25),
  age int,
  primary key (id)
)

원래는 Repository단에서 클래스 메서드 내의 쿼리문을 작성하여 CURD 하였지만, Entity Class를 활용하면 좀 더 수월하다.

  • User 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() {} 와 같이 기본생성자를 꼭 만들어주도록 한다.

0개의 댓글