일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Calendar
- BFS
- JPA
- priority_queue
- GC로그수집
- spring boot
- Java
- union_find
- List
- 스택
- deque
- CSS
- html
- Properties
- 리소스모니터링
- date
- scanner
- 큐
- 힙덤프
- string
- math
- NIO
- sql
- Union-find
- javascript
- set
- alter
- map
- 스프링부트
- dfs
- Today
- Total
목록JPA (2)
매일 조금씩
파일과 폴더의 정보가 모두 'document'라는 테이블에 함께 저장된다고 하자. 이때, 폴더는 파일의 부모가 되므로 한테이블내에서 부모(parent)와 자식(children)이 존재한다. PK는 'log_file_id' 와 'version' 이다. 이경우 이를 셀프조인을 사용하지 않고 폴더 안의 파일/폴더 리스트를 가져오려면.. 1. 쿼리로 직접 셀프조인을 구현하여 리스트를 받아온다. 2. 'file_parent_id' 컬럼 값이 폴더의 'log_file_id' 값인 것을 찾아 java의 Object인 List에 담는다. 하지만 이는 JPA에서 손쉽게 해결할수 있다. 다음 코드를 보자. @Entity @Data @NoArgsConstructor @Table(name="document") @IdClass..
백엔드에서 업로드한 파일을 삭제하는 기능을 구현하려면, 서버에서 저장된 것과 DB에 저장된 걸 두개다 삭제해야한다. 여기서 DB의 메타 하나를 삭제하는건 문제가 되지않는다. 실제 물리파일이 아니기 때문에 delete쿼리로 쉽게 삭제가 되기 때문이다. 하지만, 실제 물리파일이 저장된 폴더를 삭제하는 것이 문제가 된다. 한번에 삭제 되지않고, 폴더가 비어있어야 삭제가 되기때문이다. 현재 서비스에서 물리파일은 서버에 다음 경로로 저장되어 있다. *** (파일/폴더명) 폴더 파일 *** (파일 메타 pk) > (원본 pdf 파일명) > image > (페이지번호).png > thumbnail > (페이지번호).png 그래서 image, thumbnail폴더에 저장된 png 파일들을 모두 삭제한후 image, t..