Kim ByeungHyun
MediaType, IOException, Gson, @ElementCollection 본문
@PostMapping(value = "/", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE})
public GlobalResDto<Object> createPost(@AuthenticationPrincipal UserDetailsServiceImpl userDetailsService,
@RequestParam(required = false) String contents,
MultipartHttpServletRequest multipartHttpServletRequest) throws IOException {
consumes = {MediaType.MULTIPART_FORM_DATA_VALUE}
- FormData로 작성해주기
List<MultipartFile> multipartFiles = multipartHttpServletRequest.getFiles("file");
MultipartFile file = multipartFiles.get(0);
throws IOException
- 자바 입출력 예외처리
- 입력과 출력으로 일
Gson gson = new Gson();
- Json을 파싱하고 생성 하기 위해 사용되는 오픈소스
- Gradle 추가
dependencies {
implementation 'com.google.code.gson:gson:2.8.7'
} - 생성방법 2가지
new Gson()
new GsonBuilder.create()
PostReqDto postReqDto = gson.fromJson(contents, PostReqDto.class);
- PostReqDto 객체 -> Json 문자열
@ElementCollection
private List<String> imgUrl;
- RDB에는 컬렉션과 같은 형태의 데이터를 컬럼에 저장할 수 없기에 별도의 데이블을 생성하여 컬렉션을 관리한다.
- 값 타입 켈렉션을 매핑 할 때 사용
- 값 타입 컬렉션
@OneToMany 처럼 엔티티를 컬렉션으로 사용하는 것이 아닌, Integer,String,임베디드 타입 같은 값 타입을 컬렉션으로 사용하는 것이다.
1대N 관계 - 보통 @CollectionTable 과 함께 사용
예시)
// Basic type
@ElementCollection(fetch = FetchType.LAZY)
@Column(name = "TOPIC_NAME")//String인 경우에 한해서 예외적으로 허용, 이외 타입은 @AttributeOverride를 사용해서 테이블 속성을 재정의한다.
private Set<String> topicTags = new HashSet<String>();
// Embedded type
@ElementCollection
@CollectionTable(name="study_group_member", joinColumns = @JoinColumn(name= "study_group_id", referencedColumnName = "id"))
private Set<StudyGroupMember> members = new HashSet<StudyGroupMember>();
참고)
Spring Boot | multipart/form-data 파일 업로드 ( + React , Axios, REST API, multiple files)
클라이언트(React) 측에서 파일과 함께 JSON데이터를 전송해보기. 찾아보면 파일 하나만 전송하는 경우 예제는 많은데 JSON데이터와 함께 보내는 건 잘 없었다.. 거기다가 나는 모델 안에 오브젝트
gaemi606.tistory.com
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=editinside&logNo=220732407918
입출력 예외 처리를 위한 throws IOException과 자바 변수 형변환(캐스팅) 주의점
입출력 예외 처리를 위한 throws IOException과 자바 변수 형변환(캐스팅) 주의점 아침이 밝았습니다. ...
blog.naver.com
https://hianna.tistory.com/629
[Java] Gson 라이브러리 사용법 및 예제 ( Json 생성, 변환 )
이번에는 Gson 라이브러리로, Java에서 Json을 다루는 방법을 알아보도록 하겠습니다. Gson은 Gson 라이브러리 추가하기 Gson 객체 생성하기 Json 생성하기 Object -> Json 변환하기 Json -> Object 변환하기 Map -
hianna.tistory.com