Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Kim ByeungHyun

MediaType, IOException, Gson, @ElementCollection 본문

카테고리 없음

MediaType, IOException, Gson, @ElementCollection

sandbackend 2022. 11. 2. 04:14
@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>();

 

 

 

 

참고)

https://gaemi606.tistory.com/entry/Spring-Boot-multipartform-data-%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C-React-Axios-REST-API

 

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