본문 바로가기
Side Project/To do List API

모델 구현

by BellOne4222 2024. 2. 2.

모델 구현

  • 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