현제의 현재이야기
[Spring] Json에 포함되는 필드 본문
package com.example.domain.domain;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import javax.persistence.*;
import java.time.LocalDateTime;
@Entity
@Getter @Setter
@Table(name = "member")
@NoArgsConstructor
public class Member {
@Id
@GeneratedValue
@Column(name = "member_id")
private Long id;
private int age;
private LocalDateTime createdAt;
public Member(int age) {
this.age = age;
this.createdAt = LocalDateTime.now();
}
// 비지니스 로직
public double calculateAverage() {
double average = 0.0;
if ((this.age >= 55) && (this.age < 65)) {
average = 12.37;
} else if ((this.age >= 65) && (this.age < 75)) {
average = 11.17;
} else if ((this.age >= 75) && (this.age < 85)) {
average = 10.50;
} else if (this.age >= 85) {
average = 6.64;
}
return average;
}
}
- 이렇게 되어있으면 객체에는 @getter 영향을 받는 id, age, createdAt이 포함된다.
[
{
"id": 3,
"question": {
"id": 2,
"imageUrl": "url.com",
"answer": "정답"
},
"member": {
"id": 1,
"age": 66,
"createdAt": "2023-04-13T22:46:34.565342"
},
"answerStatus": "WAITING",
"audio": "audio.com"
}
]
하지만 메소드도 get 이름을 붙이면 getter 메소드로 분류되어서 Json에 자동으로 추가된다.
public double getAverage() {
double average = 0.0;
if ((this.age >= 55) && (this.age < 65)) {
average = 12.37;
} else if ((this.age >= 65) && (this.age < 75)) {
average = 11.17;
} else if ((this.age >= 75) && (this.age < 85)) {
average = 10.50;
} else if (this.age >= 85) {
average = 6.64;
}
return average;
}
결과
[
{
"id": 3,
"question": {
"id": 2,
"imageUrl": "url.com",
"answer": "정답"
},
"member": {
"id": 1,
"age": 66,
"createdAt": "2023-04-13T22:46:34.565342",
"average": 11.17
},
"answerStatus": "WAITING",
"audio": "audio.com"
}
]
- 자동으로 nested serialize도 해주고,, 뭐지 스프링 생각보다 간편할지도
- 그러니깐 결론적으로 Json에 포함 되는 것은 getter가 있을 때 포함된다.
'JAVA' 카테고리의 다른 글
[spring] FetchType에 대하여 (0) | 2023.04.13 |
---|---|
[Spring] null 값 처리와 HTTP response (0) | 2023.04.07 |
[JAVA SPRING] 0314 TIL (0) | 2023.03.14 |
[JAVA] JAVA Static과 Python global과의 차이점 (0) | 2023.03.10 |
기초문법 1일차 (0) | 2023.03.08 |
Comments