본문 바로가기
Spring

[Spring; 스프링] SpringBoot JPA Entity

by daddydontsleep 2023. 10. 4.
728x90
728x90

SpringBoot JPA Entity

오늘은 SpringBoot JPA Entity에 대해 설명해드리겠습니다. 😊😊

SpringBoot JPA Entity란 스프링 부트에서 JPA를 사용하기 위해 정의하는 클래스입니다.

JPA는 Java Persistence API의 약자로, 자바에서 관계형 데이터베이스와 객체를 매핑하는 기술입니다.

@Entity 어노테이션을 사용하면 해당 클래스가 JPA 엔티티임을 선언할 수 있습니다.

엔티티는 데이터베이스의 테이블과 일대일로 대응하며, 각 엔티티 인스턴스는 테이블의 행을 나타냅니다.

@Entity 어노테이션은 클래스 레벨에 적용하며, 엔티티의 이름은 기본적으로 클래스의 이름과 같습니다.

name 속성을 사용하면 엔티티의 이름을 변경할 수 있습니다.

예를 들어, @Entity (name="student")와 같이 적용하면 엔티티의 이름이 student가 됩니다.

@Entity 어노테이션을 적용한 클래스는 다음과 같은 조건을 만족해야 합니다.

  1. 기본 생성자를 가지고 있어야 합니다.
  2. final로 선언되지 않아야 합니다.
  3. @Id 어노테이션을 사용하여 기본 키를 지정해야 합니다.
  4. @GeneratedValue 어노테이션을 사용하여 기본 키의 생성 전략을 선택할 수 있습니다.
  5. @Table 어노테이션을 사용하여 데이터베이스의 테이블 이름과 스키마를 지정할 수 있습니다.
  6. @Column 어노테이션을 사용하여 데이터베이스의 컬럼 이름과 속성을 지정할 수 있습니다.

다음은 SpringBoot JPA Entity의 예시입니다.

package com.example.daddydontsleep;

import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;

@Entity
public class Customer {

  @Id
  @GeneratedValue (strategy=GenerationType.AUTO)
  private Long id;

  private String firstName;

  private String lastName;

  protected Customer () {}

  public Customer (String firstName, String lastName) {
    this.firstName = firstName;
    this.lastName = lastName;
  }

  @Override
  public String toString () {
    return String.format (
        "Customer [id=%d, firstName='%s', lastName='%s']",
        id, firstName, lastName);
  }

  public Long getId () {
    return id;
  }

  public String getFirstName () {
    return firstName;
  }

  public String getLastName () {
    return lastName;
  }
}
728x90
300x250