Entity
Entity란?
Entity의 조건
- 기본생성자가 필수이다.
- final 속성은 사용할 수 없다.
- getter가 필요하다.
Lombok
- Lombok은 setter와 getter를 생성해줘서 코드를 간결하게 해준다.
- build.gradle
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'
}
@Getter
@Setter
- 다음과 같이 사용이 가능하다.
- 코드를 간결하게 해준다는 장점이 있지만, 종속성과 IDE의 지원등의 문제로 사용하지 않겠다
Team Entity 구성하기
- 기존에 구성한 Team은 record로 구성했었다.
- Entity는 record로 사용할 수 없다.
- Team.java
package com.chan.ssb;
import jakarta.persistence.*;
@Entity(name = "team")
public class Team {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column
private String name;
@Column
private String city;
@Column
private int championships;
public Team() {
}
public Team(long id, String name, String city, int championships) {
this.id = id;
this.name = name;
this.city = city;
this.championships = championships;
}
public long getId() {
return id;
}
}
- @Entity(name = "team"): Entity를 만든다.
- @ID: 기본키로 지정한다
- @GeneratedValue(strategy = GenerationType.IDENTITY): ID를 자동으로 생성함
- @Column: 테이블의 열로 인식함 / 기본적으로 인식함
- @Transient: 테이블의 열로 인식하고 싶지 않을 때
h2 콘솔에서 확인하기
