-
< Spring Boot > EntitySpring Boot 2023. 8. 25. 12:25
Entity 란 ?
쉽게 하나의 테이블 명이될 클래스라고 생각하면 되며
entity 는 DB 의 table 입니다.
DB 의 내용이 바뀌면 entity 의 내용도 바뀌며,
따라서 entity 에는 select, delete, update 만 담당하게 되어있습니다.
간단한 설명 다음에 코드를 보여드리겠습니다.
Entity 생성에 사용되는 Annotation
- @Entity : JPA 에서 실제 DB의 테이블과 매칭 될 class 임을 명시하는 어노테이션
- @Table : Entity 테이블에 매핑할 테이블 정보를 알려주는 어노테이션
속성으로 name 을 갖는데, 이값을 주면 값으로 테이블이 생성됩니다.
default 는 entity 클래스 이름과 같은 이름으로 매칭됩니다. - @ID : JPA 에서는 기본적으로 모든 테이블에 PK 를 주도록 정의합니다.
따라서 이 어노테이션을 주게되면 해당 컬럼이 자동으로 PK 지정됩니다.
일반적으로 자바 Number 타입을 사용하는데 , 필요하다면 문자열도 PK 지정됩니다.
참고로 부트에서는 나중에 배울 Stream(IO 아님) 을 많이 사용하기 때문에
pType 의 넘버 보다는 Wrapper 타입으로 사용하는게 일반적입니다. - @GeneratedValue : 코드와 함께 주석으로 설명해드리겠습니다.
@Entity @Table(name = "tb_memo") --> entity 명(테이블 이름) 설정 @ToString // name을 출력 @AllArgsConstructor @NoArgsConstructor public class Memo { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long mno; @Column(length = 100, nullable = false) private String memoText; }
@GeneratedValue(strategy = GenerationType.AUTO) private Long mno; @Column(length = 100, nullable = false) private String memoText;
- @GeneratedValue : 컬럼의 PK 를 지정 시에, PK 의 번호를 자동으로 지정하는 어노테이션 입니다. 속성으로는 여러가지가 있는데, 주체가 누가되는지를 결정하는 값입니다.
테이블에서와 하이버네이트에서 다양한 값을 설정 할 수 있습니다. - @Column : 컬럼을 나타내며 PK 가 아닌 다른 컬럼을 지정할 때 사용합니다.
만약 선언하지 않으면, 모든 필드는 자동으로 타입에 맞게 컬럼으로 생성됩니다.
그럼 왜 쓸까요??? 이유는 컬럼의 속성을 지정 할 때 사용되기 때문입니다.
예를 들자면, Not Null, 문자열 길이 등 따로 지정 할 때 사용합니다.
키 생성 전략 설명
- auto(default) : 하이버네이트가 생성해서 부여한다.
- identity : DB에서 직접 부여한다. Maria 인 경우엔 auto_increament 가 지정됨
- sequence : 오라클 등에서 사용하는 시퀀스 객체가 지정한다. 이때는 @sequenceGenerator 와 같이 사용해야한다.
'Spring Boot' 카테고리의 다른 글
<Spring Boot> queryAnnoation (0) 2023.08.25 <Spring Boot> queryMethod (0) 2023.08.25 < Spring Boot > Repository (0) 2023.08.25 <Spring Boot> Controller (Rest) (0) 2023.08.24 <Spring Boot> install (0) 2023.08.24