fix: 예약이 있는 회의실을 지울 때 그 예약이 정리되지 않는 문제 수정 - #1237
Merged
mochoping merged 1 commit intoAug 27, 2026
Merged
Conversation
회의실 삭제는 방 한 행만 지운다. 같은 핸들러가 첨부파일은 정리하는데 예약만 정리하지 않는다. 매퍼 여덟 방언의 예약 삭제문은 예약 아이디를 요구하므로 방 아이디로 예약을 지우는 SQL 자체가 없다. 결과는 배포한 DDL에 따라 갈린다. 참조 무결성이 걸린 방언에서는 삭제 자체가 실패해 사용자가 오류 화면을 본다. 걸리지 않은 방언에서는 예약이 남는데, 예약 조회가 회의실을 기준 테이블로 삼으므로 화면에서는 보이지 않는다. 어느 쪽도 좋은 결과가 아니다. 예약이 남아 있으면 삭제하지 않고 화면에 알리도록 했다. 방 아이디로 예약 건수를 세는 조회가 없어 여덟 방언에 같은 문장을 하나씩 넣었다. 기존 중복확인 조회와 같은 배관이다. 연쇄 삭제로 가는 방법도 있다. 되돌릴 수 없는 삭제라 이쪽을 택했고, 메인테이너가 연쇄 삭제를 원하신다면 그쪽으로 다시 내겠다.
Contributor
수용예약이 남아 있는 회의실의 삭제를 거부하도록 변경한 내용입니다. 확인용 건수 조회가 서비스·DAO 와 8개 DB 방언 매퍼에 모두 추가된 것을 확인했으며, 표준프레임워크에 소중한 기여를 해주셔서 감사합니다. |
mochoping
added a commit
that referenced
this pull request
Aug 27, 2026
LeeBaekHaeng
pushed a commit
to itcen-entec-2026/egovframe-common-components
that referenced
this pull request
Aug 27, 2026
…GovFramework#1221, eGovFramework#1222, eGovFramework#1223, eGovFramework#1224, eGovFramework#1225, eGovFramework#1226, eGovFramework#1227, eGovFramework#1228, eGovFramework#1229, eGovFramework#1230, eGovFramework#1231, eGovFramework#1232, eGovFramework#1233, eGovFramework#1234, eGovFramework#1235, eGovFramework#1236, eGovFramework#1237, eGovFramework#1238, eGovFramework#1239, eGovFramework#1240, eGovFramework#1241) - eGovFramework#1216 fix: require admin authorization for administrative terminology create, update, and delete - eGovFramework#1217 fix: require admin authorization for backup job create and update - eGovFramework#1221 fix: require admin authorization for login screen image management - eGovFramework#1222 fix: require admin authorization for main image management - eGovFramework#1223 fix: enforce ownership checks on anniversary update - eGovFramework#1224 fix: add the missing path separator when deleting main image, banner, and login screen image files - eGovFramework#1225 fix: point the password expiry popup's employee branch at an existing URL - eGovFramework#1226 fix: restore employee registration form binding and code lists on validation redisplay - eGovFramework#1227 fix: restore code lists on enterprise member signup validation redisplay - eGovFramework#1228 fix: correct the authority group list form action namespace - eGovFramework#1229 fix: restore added-option display flags on board master validation redisplay - eGovFramework#1230 fix: restore code lists on general member signup validation redisplay - eGovFramework#1231 fix: restore hour and minute select lists on memo todo validation redisplay - eGovFramework#1232 fix: call the satisfaction list paging function instead of the comment one - eGovFramework#1233 fix: populate the last-updater audit field on knowledge map material and team updates - eGovFramework#1234 test: guard the test datasource URL against host-specific values - eGovFramework#1235 fix: block deleting a department job box that still holds jobs - eGovFramework#1236 fix: block deleting an event that still has attendance applications - eGovFramework#1237 fix: block deleting a meeting room that still has reservations - eGovFramework#1238 fix: correct script references to non-existent forms on employee screens - eGovFramework#1239 fix: require admin authorization for the proxy service list screen - eGovFramework#1240 fix: mark attachments unused when deleting personal knowledge - eGovFramework#1241 fix: mark attachments unused when deleting system history Closes eGovFramework#1216, eGovFramework#1217, eGovFramework#1221, eGovFramework#1222, eGovFramework#1223, eGovFramework#1224 Closes eGovFramework#1225, eGovFramework#1226, eGovFramework#1227, eGovFramework#1228, eGovFramework#1229, eGovFramework#1230 Closes eGovFramework#1231, eGovFramework#1232, eGovFramework#1233, eGovFramework#1234, eGovFramework#1235, eGovFramework#1236 Closes eGovFramework#1237, eGovFramework#1238, eGovFramework#1239, eGovFramework#1240, eGovFramework#1241
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
수정 사유 Reason for modification
수정된 소스 내용 Modified source
회의실을 지워도 사라지는 것은 방 한 행뿐입니다. 같은 핸들러가 첨부파일은 정리하는데 예약만 정리하지 않습니다. 정리 책임을 이미 지고 있으면서 한쪽만 빠진 셈입니다.
매퍼 여덟 방언의 예약 삭제문은 예약 아이디를 요구하므로 방 아이디로 예약을 지우는 SQL 자체가 없습니다.
배포한 DDL이 무엇이냐에 따라 결과가 달라집니다.
어느 쪽으로 가든 바람직하지 않습니다.
AS-IS
TO-BE
영향 범위
예약이 없는 회의실은 종전과 똑같이 지워집니다. 예약이 남아 있는 회의실을 지우려 할 때만 동작이 달라집니다. 그때는 오류 화면이나 조용한 잔존 대신 안내가 뜹니다.
방 아이디로 예약 건수를 세는 조회가 없어 여덟 방언에 같은 문장을 하나씩 넣었습니다.
방언 문법 차이가 없어 여덟 파일이 같은 내용이고 각 파일 끝에 붙여 기존 문장과 줄이 겹치지 않습니다. DAO·서비스 배관은 같은 클래스의 기존 중복확인 조회와 같은 모양으로 맞췄습니다.
연쇄 삭제라는 선택지도 있습니다. 되돌릴 수 없는 삭제여서 이쪽을 골랐습니다. 메인테이너께서 연쇄 삭제를 원하신다면 그 방향으로 다시 내겠습니다.
한글·영문 메시지 키를 하나씩 추가했고 목록 화면에는 알림을 넣었습니다.
JUnit 테스트 JUnit tests
EgovMtgPlaceManageControllerDeleteTest2건을 추가했습니다. 서비스와 파일 서비스를Proxy로 세우고 예약 건수를 달리하며 예약이 있을 때는 삭제가 호출되지 않고 없을 때는 호출되는지 확인합니다. 스프링 컨텍스트나 DB 없이 돌아갑니다.수정 전(RED, 가드만 되돌려 실행)
수정 후(GREEN)
커밋에 pom 변경은 넣지 않았습니다.
<skipTests>true</skipTests>를 잠시 풀고 받은 출력입니다.테스트 브라우저 Test Browser
해당 없음
테스트 스크린샷 또는 캡처 영상 Test screenshots or captured video
해당 없음