테이블을 만들고 싶다면 JPA에서는 @Entity클래스를 만들면 자동생성된다.
테이블을 만들때는 테이블에 어떤 컬럼이 들어갈지도 먼저 정해야한다.
Item.java
package com.apple.shop;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
public class Item {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
String title;
Integer price;
}
컬럼용 변수에는 int 말고 Integer를 강요한다
(int/Integer는 20억까지 저장가능하다.)
id 컬럼에는 @Id를 사용해야한다.
@GeneratedValue를 사용하면 id를 알아서 1씩 증가 시켜준다.(정확히는 @GeneratedValue(strategy = GenerationType.IDENTITY) 이다)
이제 실행을 해주고 잘 됬는지 확인하기 위해 DBeaver에서 확인한다.

짠! 모두 잘 나왔다!
이제 상품 몇개를 넣어보자

아래의 row추가 버튼을 클릭한다
이제 하나하나 입력해주면 된다.
근데 이게 귀찮다고한다면

상단의 SQL을 누른 후

이렇게 입력해주고 실행버튼 누르면 된다.
(실행버튼은 저 주문서 같은 아이콘)

짠! 3개 모두 추가되었다!
한가지 추가할게 생겼다.
아까 Entity코드 안의 변수에 public을 붙여준다.
Item.java
package com.apple.shop;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity
public class Item {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
public Long id;
public String title;
public Integer price;
}
이유는 public이 없으면 같은 폴더내의 클래스에서만 사용가능하기 때문에 다른 모든 클래스에서 문제없이 사용 가능하려면 public을 붙여준다.
이제 @Column()으로 컬럼에 제약설정을 해보자
public String title;
저기 'nullable = false'라는 것은 '이 컬럼이 비어있으면 테이블에 입력을 막아달라' 라는 의미다.
'unique = true'은 '이 컬럼값이 유니크하지 않으면 테이블 입력을 막아달라' 라는 의미다.
추가로 'columnDefinition = "TEXT"'는 컬럼타입을 강제로 지정이 가능하다.
이처럼 @Column 에너테이션을 사용하면 이렇게 제약설정을 할 수 있다.