본문 바로가기

spring4

[Error-Log] ConcurrentModificationException 해결법 @OnetoMany에서 collection 삭제할 때 에러 해결 방법 프로젝트에서 상품 이미지를 수정하려고 할 때 이미지를 새로 올리도록 설정해놨습니다. 그렇기 때문에 기존 이미지 url들을 삭제한 후에 이미지를 업로드하는 로직으로 구성하는 와중에 생긴 에러입니다. orphanremoval 설정을 해두어 url쪽의 FK만 null로 설정해줘도 연관 관계가 끊기게 되고 자동으로 해당 url 엔티티는 delete가 됩니다. 그러나 일반적으로 for을 사용해서 삭제를 진행하게 되면 삭제될 때마다 index가 바뀌어 제대로 삭제가 진행되지 않으면서 ConcurrentModificationException 에러를 띄우게 됩니다. for(Url url : productById.getUrlList()) { url.s.. 2022. 2. 4.
맥북으로 스프링에서 Jmeter로 성능 테스트해보기 1. Jmeter를 먼저 깔아줍시다. Apache JMeter - Download Apache JMeter Download Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be ava jmeter.apache.org zip 파일을 받고 압축을 풀어주도록 합니다. 2. 별도 설치 필요 없이 터미널에 접속하고 압축 푼 폴더 안의 /.. 2022. 2. 4.
스프링 레디스 redis cache 프로젝트에 적용하기 실행 환경 mac air m1 몬터레이 spring boot: 2.6.2 redis: 6.2.6 Docker Desktop: 4.4.2 스프링에서 레디스를 사용하기 위해서 도커에 redis 컨테이너가 실행 중인 상태로 두신 상태를 전제로 진행하겠습니다. 1. build.gradle에 implementation 추가하기 data-redis와 cache manager 사용을 위해 두 가지 모두 추가해줍니다. implementation 'org.springframework.boot:spring-boot-starter-data-redis' implementation 'org.springframework.boot:spring-boot-starter-cache' 2. @EnableCaching 추가 프로젝트에서 캐.. 2022. 2. 4.
entitygraph 사용시 주의할 점 다중 엔티티 그래프를 사용할땐 주의할 점이 있습니다.. 몰랐던 부분인데 JPA에서 Fetch join의 조건이 있었습니다. ToOne 관계는 몇 개든 사용할 수 있다 ToMany 관계는 다중 그래프 관계에서 한 곳만 쓸 수 있다. 기존 코드에서는 ToMany 관계가 두 개 모두 되어 있어 이러한 에러를 만나게 되었습니다. org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags: [com.ireland.ager.account.entity.Account.products, com.ireland.ager.product.entity.Product.urlList] @NamedEntityGraph( name = .. 2022. 1. 18.