모델 구현
- TodoEntity : 데이터베이스와 데이터를 주고 받기 위한 Entitiy 클래스
package com.example.model;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Entity
@NoArgsConstructor
@AllArgsConstructor
public class TodoEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String title;
@Column(name = "todoOrder", nullable = false)
private Long order;
@Column(nullable = false)
private Boolean completed;
}
- @Data: Lombok에서 제공하는 어노테이션으로, 클래스에 대한 getter, setter, equals, hashCode, toString 등을 자동으로 생성합니다.
- @Entity: JPA 엔티티임을 나타내는 어노테이션으로, 해당 클래스가 데이터베이스의 테이블과 매핑된다고 선언합니다.
- @NoArgsConstructor: 파라미터가 없는 기본 생성자를 자동으로 생성하는 어노테이션입니다. JPA에서는 엔티티 클래스에 기본 생성자가 필요합니다.
- @AllArgsConstructor: 모든 필드를 인자로 받는 생성자를 자동으로 생성하는 어노테이션입니다.
- @Id : 해당 필드가 엔티티의 기본 키임을 나타냅니다.
- @GeneratedValue : 기본 키의 생성 전략을 지정합니다.
- GenerationType.IDENTITY : 데이터베이스에서 자동으로 생성되는 방식을 사용합니다.
- @Column : 해당 필드가 데이터베이스의 컬럼임을 나타냅니다.
- nullable = false : 해당 컬럼이 데이터베이스에 널 값을 허용하지 않음을 나타냅니다.
- @Column(name = "todoOrder", nullable = false) : todoOrder라는 이름으로 데이터베이스에 매핑
- TodoRequest : 요청을 받기 위한 Request 클래스
package com.example.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TodoRequest {
private String title;
private Long order;
private Boolean completed;
}
- TodoResponse : 응답을 하기 위한 Response 클래스
package com.example.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TodoResponse {
private Long id;
private String title;
private Long order;
private Boolean completed;
private String url;
public TodoResponse(TodoEntity todoEntity) {
this.id = todoEntity.getId();
this.title = todoEntity.getTitle();
this.order = todoEntity.getOrder();
this.completed = todoEntity.getCompleted();
this.url = "http://localhost:8080/" + this.id;
}
}
'Side Project > To do List API' 카테고리의 다른 글
컨트롤러 구현 (0) | 2024.02.03 |
---|---|
서비스 코드 구현 (0) | 2024.02.03 |
repository 구현 (0) | 2024.02.02 |
환경설정 및 세팅(개발 환경) (0) | 2024.02.02 |
요구사항 정리 (0) | 2024.02.02 |