본문 바로가기

컨트리뷰션

(5)
4. batch 메서드 컨트리뷰션 - org.hibernate.AssertionFailure: possible non-threadsafe access to session deletaAllInBatch(Iterable entities) 메서드를 수정하는 과정에서 다음과 같은 예외가 발생하면 테스트 코드에 실패했습니다.  @Override @Transactional public void deleteAllInBatch(Iterable entities) { Assert.notNull(entities, "Entities must not be null"); if (!entities.iterator().hasNext()) { return; } //컨트리뷰션 시작 for (T entity : entities) { if (entityManager.contains(entity)) { entityManager.remove(entity); entityManager...
4. batch메서드 컨트리뷰션 (실패) 목차개요사전지식문제점제안레퍼런스결과📣 개요작년 6월 즈음, 우연히 학우가 컨트리뷰션에 도전을 하였고 성공하였다는 발표를 듣게 되었습니다. 당시 저는 '그렇구나...' 정도의 감상이 전부였으나 올해 초 학교생활도 마무리되는 시점에서 이때 들었는 컨트리뷰션을 한 번쯤 해보고 싶다는 생각을 하게 되었습니다. 당시 저는 쿼리 최적화에 관심이 있었기에 제가 자주 사용하는 data jpa의 컨트리뷰션에 도전하게 되었습니다. 📣 사전 지식개요에서 이미 언급하였다시피 저는 ORM의 쿼리 최적화에 관심이 많았습니다. 제가 자주 사용하는 Data JPA의 deleteAll은 엔티티를 하나씩 삭제를 하는 문제가 존재했습니다.  그리고 이러한 문제를 data jpa에서는 'batch'키워드가 들어간 메서드로 지원해주고 있..
3. data jpa가 제공해주는 deleteAll에 대한 의문점 (컨트리뷰션 실패) 요약이미 deleteAll로 하였을 경우 단건씩 나가는 문제를 해결한 메소드인 delete batch가 있다고 합니다...그래도 덕분에 배치에 대해 배웠습니다.계기해당 컨트리뷰션에 도전하게된 계기는 다음과 같습니다. 23년 여름 현장실습을 하며 업무들을 쳐내고 있었습니다. 당시 저는 여러개의 엔티티를 한번에 지워야 하는 삭제 쿼리를 개발하여야 했습니다. 저는 data jpa가 제공해주는 막강한 기능(막강한 최적화)만을 믿고 삭제 기능을 구현하고 테스트 하였습니다. 그러나 실제로 나가는 쿼리를 보니 삭제해야 할 엔티티를 모두 조회하고 한번에 삭제를 하는 것이 아닌 단건씩 삭제가 되었습니다.사실 당시 진행하고 있던 프로젝트는 사내 업무를 보조하는 성격의 프로그램이였기에 단건씩 삭제가 되든 한번에 삭제가 되든..
2. 컨트리뷰션을 해보기 이전 준비해야 할 것들 (컨트리뷰션 실패) 이전 글 에서 불연득 컨트리뷰션을 해보기 위해 마음을 먹고 방법을 찾아보았습니다. 그리고 다행이도 컨트리뷰션 가이드가 있어 해당 가이드를 따라하고자 합니다. 아래는 제가 하고자 하는 컨트리뷰션의 대략적인 개요를 파파고의 힘을 빌려 작성한 이슈입니다. 가이드에서 안내하는대로 하였으니 이제는 기다리는것 말고는 할게 없습니다...! (제가 제안한것에 대해 시원하게 okay 라고 해주세요 ㅠㅠ 사실 이게 안된다면 삭제 쿼리 관련하여 개선할것도 한발 남아있기는 합니다ㅎ..) 수정 그럼 기능은 필요없다고 돌려말해주셨습니다..ㅠㅠ 그래도 삭제 쿼리가 하나씩 나가는 문제점이 아직 남아 있으니 이 것에 대해 다시 한번 더 컨트리뷰션을 시도하고자 합니다...
1. exists + All 관련한 오래된 의문 (컨트리뷰션 실패) https://goto-pangyo.tistory.com/189 Data Jpa의 exists에 대한 고찰 현상 현장 실습중 인자의 리스트의 값이 DB에 모두 있어야만 True가 반환되는 로직을 구현해야 할 일이 생겼다. 나는 현장실습에서 사용중인 data jpa를 통해 해당 로직을 구현하였다. 나는 다음과 goto-pangyo.tistory.com 컨트리뷰션을 해볼까하고 마음먹은 계기는 제가 이전에 쓴 글에도 나와있지만 반년정도 지난 지금 다시 생각을 해보면 다음과 같습니다. 웹 개발을 하며 특정 테이블에 특정 값이 모두 존재하는지 확인하는 로직이 필요한 상황이 종종 필요할듯합니다. 이는 지극히 개인적인 생각이지만 아무렴 어떤가 이러라고 컨트리뷰션이 있지않은가! 처음 이 불편한 점을 발견하였을당시는 현..