Entity에서 사용하는 대략적인 어노테이션에 대해 설명하겠다.
@Entity : 이 클래스가 Entity 임을 알려주며 어노테이션 작성시 JPA에서 정의된 필드를 바탕으로 데이터베이스 테이블을 생성한다.
@Data : lombok 에서 가져온 기능으로 Getter,Setter,ToString,Constructor에 대한 정보를 자동으로 생성해준다.
lombok -> Getter,Setter와 같은 기계적인 코드들을 Annotation 기반으로 코드를 자동화하여 작성해주는 Java Library
@Builder : 이 클래스에 대한 객체를 생성할때 빌더 패턴을 이용하여 만들 수 있도록 지정해주는것이다.
@AllArgsConstructor : 선언된 모든 필드를 Parameter로 갖는 생성자를 생성한다.
@NoArgsConstructor : Parameter가 없는 기본 생성자를 생성한다.
@Id : 해당 Table의 PK 필드
@GeneratedValue : 이러한 PK 필드의 Id 가 어떤식으로 증가할지를 결정
@Column : 테이블의 컬럼임을 표시, 필수는 아니며 변경이 필요한경우에만
@ManyToOne,@OneToMany : 관계 매핑을 위한 어노테이션
User.java
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Data
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id; // User id
@Column(nullable = false, unique = true)
private String username;
@Column(nullable = false)
private String password;
}