2022 09 25 - WIYA-waitinyourarea/wiya GitHub Wiki

2022-09-25 회의록

1. 파일 타입을 수정하는 내용

  • 목표
    • 파일을 멀티파트로 전송하는 내용은 성공했지만, 병원 수정 폼에서 기존의 파일(이미지)를 지우거나 추가하거나 하는 기능이 필요
  • 문제
    • input file의 value를 서버에서 받아온 정보로 임의로 지정할 수 없음
    • input file의 파일은 클라이언트의 파일 경로이므로, 수정 폼에서 클라이언트가 파일을 인지할 수 있게 하기 위해선 오리진 네임을 노출 시켜야함
  • 해결
    • js 에서 input file .files속성과 DataTransfer객체를 이용하여 동적으로 input file에 파일 리스트를 클라이언트가 동적으로 수정할 수 있게 적용
    • 수정 폼을 get방식으로 클라이언트에게 전달할 때 병원 엔티티에 등록된 병원 이미지 컬렉션을 읽어서 그 리스트를 뿌리고, 클라이언트가 그 리스트 중 지우고 싶은 사진을 선택하면 서버에서 해당 엔티티를 지우도록

2. 병원병원 이미지 양방향 관계

  • 목표
    • 병원 수정 폼에서 기존 이미지 리스트 중 지우고 싶은 사진을 지우면 서버에서 해당 병원 이미지 DELETE문 flush하기
  • 문제
    • em.remove(병원이미지)가 작동이 안됨
  • 해결
    • 병원과 병원 이미지는 양방향 관계이고, CascadeType=ALL 인게 문제
    • 병원 이미지는 병원에 영속성이 전이된 상태이므로 병원 이미지를 단독으로 remove할 수 없음
    • 2가지 해결 방법
      • CascadeType=ALL 속성을 지워버리던지
      • cascade = CascadeType.ALL, orphanRemoval = true속성 적용
        • 병원에서 병원이미지를 갖고 있는 컬렉션에서 삭제를 원하는 병원 이미지를 뺴버리면, 자동으로 고아객체가 되어 삭제됨