Java21 Sql In, Not In 절 (JDBC JPA) QueryDsl 활용 where 문의 or 대신 in을 활용하려 한다.이유는 or는 인덱스 활용 불가능이고 in은 인덱스를 활용할 수 있어 in 절이 속도 면에서 우위가 있다. - sql in 절의 특징sql in ( “1”,”2”) 의 경우는 내부 콤마가 or가 되고.sql Not In (“1”, “2”)의 경우는 내부 콤마가 and가 된다. - Query dsl 특징where(000, 000) 의 경우는 내부 콤마가 and가 된다 - 실제 동적쿼리 적용 코드 @Override public List findByReceiverIdAndStatusOrStatus(String receiverId, AcceptStatus... acceptStatuses) { List kdKDGifts = queryFacto.. 2023. 1. 17. Redis key 값 덮어쓰기 배치 서버에서 주기적으로 캐시 값을 업데이트 할 일이 생겼다. 키 값을 덮어 쓸지 모르고 처음엔 CrudRepository에 있는 deleteAll()을 사용해 db값을 지운후 업데이트 해줬었다. Redis에 있는 값을 뽑아서 saveAll()로업데이트 하려고 했었지만 저장 스펙을 Set 식의 hash데이터로 저장을 했다. 이렇게 한 이유는 대충 설명하자면 회원당 가지고있는 특정 속성을 나누기 위해서 라고 정도로만 알아두면 될 것 같다. (밑에 사진 첨부) 값 저장이 복잡하게 되어있기 때문에 하나하나 비교해서 값을 변경해서 바꾸기에는 효율이 너무 떨어 질 것 같고 (1분 마다 한번씩 요청이라 상관없을 것 같긴한데.. 싱글스레드라 요청이 많을 때 배치가 타이밍 맞춰서 돌아가면 최악일 수도 있기 때문에? r.. 2023. 1. 12. Eureka, Zuul 참고 블로그 (로드밸런싱) 보호되어 있는 글 입니다. 2023. 1. 4. QueryDsl 동적쿼리 사용 (SpringBoot, JPA) Tag 테이블에는 team_id가 외래키로 존재한다. 즉, 하나의 Team은 다수의 Tag를 가질 수 있다. -RequestBody (Rest API) -RequestTags @Data public class RequestTags { private List tags; } -TeamController /** * 태그로 전체 게시판 검색 */ @ApiOperation(value = "태그로 전체 게시판 조회 URL") @PostMapping("/api/tags") public ResponseTagsInTeam tagsInTeam( @RequestBody RequestTags requestTags, @PageableDefault(size = 10, sort = "createdDate", direction = .. 2022. 11. 25. 이전 1 2 3 4 5 6 다음