Entity
Entity는 데이터베이스 테이블과 매핑되는 자바 객체를 의미합니다.
주로 JPA와 함께 사용되며, 데이터베이스와 애플리케이션 사이의 데이터를 효과적으로 조작하고 관리하기 위한 객체 지향적인 프로그래밍 방식을 제공합니다.
되도록이면 엔티티는 Setter 메서드를 구현하지 않고 사용.
엔티티는 db와 바로 연결되어 있으므로 안전상의 문제가 발생 가능성이 높다.
엔티티를 생성할 경우에는 롬복의 @Builder 어노테이션을 통한 빌드패턴을 사
@Id 애너테이션
- SQL에서 Primary Key와 같은 특징을 가집니다.
고유 번호를 기본 키로 함으로써 동일한 값으로 저장할 수 없게합니다.
@GeneratedValue
- GenerationType.IDENTITY는 SQL에서 Auto_Increment와 같은 특징을 가집니다.
strategy는 고유번호를 생성하는 옵션입니다.
strategy를 생략할 경우 @GeneratedValue 애너테이션이 지정된 컬럼들이 모두 동일한 시퀀스로 번호를 생성하기 때문에
일정한순서의 고유번호를 가질수 없게 됩니다.
@Column
테이블의 컬럼명과 일치하는데 컬럼의 세부 설정을 위해 사용됩니다. length는 컬럼의 길이를 설정하고
columnDefinition은 컬럼의 속성을 정의할 때 사용합니다.
columnDefinition = "TEXT"은 "내용"처럼 글자 수를 제한할 수 없는 경우에 사용
@Column을 사용하지 않더라도 테이블 컬럼으로 인식하는데 인식하고 싶지 않은 경우에만 @Transient 사용.
@ManyToOne
다대1 관계 ( N:1 )
질문은 하나 답변은 여러개
이 애너테이션을 설정하면 Answer 엔티티의 question 속성과 Question 엔티티가 서로 연결된다.
(실제 db에서는 ForeignKey 관계 )
@OneToMany
1:N 관계
mappedBy - 참조 엔티티의 속성명 속성명 전달
cascade..