Skip to content

Commit 5562222

Browse files
committedJul 31, 2024
#17 - 테이블 스키마 요청 dto, 스키마 필드 요청 dto를 record에서 class로 전환
현재 스프링 프레임워크 버전에서는 컨트롤러 핸들러 메소드의 입력 파라미터로 `record`를 자유롭게 쓸 수 없음. 이 문제는 아래 참조 링크에 따라 스프링 버전 6.2, 스프링 부트로는 버전 3.4 이후부터 수정될 것으로 전망. 따라서 일단 이 dto들만 기본 생성자와 setter를 갖춘 class로 전환한다. 추후 프로젝트의 부트 버전을 올리게 되면 이 부분을 `record`로 되돌리는 것을 검토할 것. ## Reference * spring-projects/spring-framework#32426
1 parent 144a196 commit 5562222

File tree

2 files changed

+31
-27
lines changed

2 files changed

+31
-27
lines changed
 

‎src/main/java/uno/fastcampus/testdata/dto/request/SchemaFieldRequest.java

+20-17
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,32 @@
11
package uno.fastcampus.testdata.dto.request;
22

3+
import lombok.AllArgsConstructor;
4+
import lombok.Data;
5+
import lombok.NoArgsConstructor;
36
import uno.fastcampus.testdata.domain.constant.MockDataType;
47
import uno.fastcampus.testdata.dto.SchemaFieldDto;
58

6-
public record SchemaFieldRequest(
7-
String fieldName,
8-
MockDataType mockDataType,
9-
Integer fieldOrder,
10-
Integer blankPercent,
11-
String typeOptionJson,
12-
String forceValue
13-
) {
9+
// TODO: 스프링 부트 3.4를 쓸 수 있게 되면, record로 되돌리는 것을 검토하기
10+
@NoArgsConstructor
11+
@AllArgsConstructor(staticName = "of")
12+
@Data
13+
public class SchemaFieldRequest {
1414

15-
public static SchemaFieldRequest of(String fieldName, MockDataType mockDataType, Integer fieldOrder, Integer blankPercent, String typeOptionJson, String forceValue) {
16-
return new SchemaFieldRequest(fieldName, mockDataType, fieldOrder, blankPercent, typeOptionJson, forceValue);
17-
}
15+
private String fieldName;
16+
private MockDataType mockDataType;
17+
private Integer fieldOrder;
18+
private Integer blankPercent;
19+
private String typeOptionJson;
20+
private String forceValue;
1821

1922
public SchemaFieldDto toDto() {
2023
return SchemaFieldDto.of(
21-
fieldName(),
22-
mockDataType(),
23-
fieldOrder(),
24-
blankPercent(),
25-
typeOptionJson(),
26-
forceValue()
24+
fieldName,
25+
mockDataType,
26+
fieldOrder,
27+
blankPercent,
28+
typeOptionJson,
29+
forceValue
2730
);
2831
}
2932

‎src/main/java/uno/fastcampus/testdata/dto/request/TableSchemaRequest.java

+11-10
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
package uno.fastcampus.testdata.dto.request;
22

3+
import lombok.*;
34
import uno.fastcampus.testdata.dto.TableSchemaDto;
45

56
import java.util.List;
67
import java.util.stream.Collectors;
78

8-
public record TableSchemaRequest(
9-
String schemaName,
10-
String userId,
11-
List<SchemaFieldRequest> schemaFields
12-
) {
9+
// TODO: 스프링 부트 3.4를 쓸 수 있게 되면, record로 되돌리는 것을 검토하기
10+
@NoArgsConstructor
11+
@AllArgsConstructor(staticName = "of")
12+
@Data
13+
public class TableSchemaRequest {
1314

14-
public static TableSchemaRequest of(String schemaName, String userId, List<SchemaFieldRequest> schemaFields) {
15-
return new TableSchemaRequest(schemaName, userId, schemaFields);
16-
}
15+
private String schemaName;
16+
private String userId;
17+
private List<SchemaFieldRequest> schemaFields;
1718

1819
public TableSchemaDto toDto() {
1920
return TableSchemaDto.of(
20-
schemaName(),
21-
userId(),
21+
schemaName,
22+
userId,
2223
null,
2324
schemaFields.stream()
2425
.map(SchemaFieldRequest::toDto)

0 commit comments

Comments
 (0)
Please sign in to comment.