프로젝트에 entity패키지 추가하고 Memo 클래스를 정의
Memo에다가
package org.zerock.ex2.entity;
import jakarta.persistence.*;
import lombok.*;
@Entity
@Table(name = "tb1_memo")
@ToString
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Memo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long mno;
@Column(length = 200, nullable = false)
private String memoText;
}
코드 작성하기
@Column 추가적인 필드(칼럼)이 필요할 경우 어노테이션을 활용한다.
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
어노테이션 추가하고 필드를 2개 만들어야 한다.
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long mno;
@Column(length = 200, nullable = false)
private String memoText;
@Builder 를 이용하기 위해서는 @AllArhsConstructor와 @NoArgsConstructor를 항상 같이 처리해야한다
(컴파일 에러가 발생하지 않음)
@Column과 반대로 데이터베이스 테이블에는 칼럼으로 생성되지 않는 필드의 경우에는
@Transient 어노테이션을 적용한다. 또한, @Column으로 기본 값을 지정하기 위해서 columnDefinition을 이용하기도 한다.
@Column(columnDefinition = "varchar(255) default 'Yes' ")
결과는
Hibernate:
create table tb1_memo (
mno bigint not null auto_increment,
memo_text varchar(200) not null,
primary key (mno)
) engine=InnoDB
이렇게 나와야한다.
'백엔드 > 스프링부트' 카테고리의 다른 글
스프링MVC와 Thymeleaf || Thymeleaf를 사용하는 법 (0) | 2024.01.11 |
---|---|
JpaRepository 인터페이스 (SQL 구문 쓰지 않아도 삽입되는 것을 알 수 있다) (1) | 2024.01.09 |
Spring Data JPA의 소개 (0) | 2024.01.09 |
인텔리 마리아디비 연동시(MariaDB 연동) (0) | 2024.01.09 |
스프링부트로 이용한 쇼핑몰 만들기 (1) | 2023.12.29 |