분류 전체보기(185)
-
스프링 트랜잭션 - 트랜잭션의 전파
보호되어 있는 글입니다.
2024.03.10 -
스프링 트랜잭션 - 예외와 트랜잭션 커밋, 롤백
보호되어 있는 글입니다.
2024.03.10 -
스프링 트랜잭션 - 적용 확인법, ReadOnly, 트랜잭션 적용 순서, 초기화 시점
보호되어 있는 글입니다.
2024.03.09 -
서비스 계층 구조 설계에서의 트레이드 오프
보호되어 있는 글입니다.
2024.03.09 -
JPA - SQLSyntaxErrorException
[ 문제 원인 ] JPA를 공부하고 있다가 문법적 오류가 없는데 hibernate로 JPA를 작성하던 도중 SQLSyntaxErrorException이 떴었다. 당시 코드는 초기 데이터를 초기화하는 부분에서 일어났었다. 오류 로그를 보니, JPQL로 작성한 부분도 아니고 그냥 에러가 일어날 수 없는 부분이었다. 확인용 코드: 오류의 시작지점 @EventListener(ApplicationReadyEvent.class) public void initData() { log.info("test data init"); itemRepository.save(new Item("itemA", 10000, 10)); itemRepository.save(new Item("itemB", 20000, 20)); } 오류 스택..
2024.03.09 -
SCHOOLPICKS - Querydsl 도입
[ 문제 상황 ] SCHOOLPICKS라는 교내 프로젝트를 하며 Service과 Repository 계층의 코드 작성을 담당했었다. 당시 버그가 가장 많이 났었던 부분은 맛집 검색을 위한 동적 쿼리를 작성하는 부분이었다. 아래의 그림을 보면 우측 상단에는 학교 캠퍼스를 선택하는 버튼이 있었고 이는 반드시 둘 중 하나가 들어왔다. 그리고 중앙 부분에는 음식점, 카페, 술집이 0개부터 3개까지 전부 들어올 수 있었다. 그리고 가격도 설정한 범위의 값이 들어왔었다. 이걸 해결하려고 검색 조건을 jpql로 동적으로 짜려고 했었다. 아래의 코드를 보면 알 수 있는데, 처음으로 짜보는 동적 쿼리이고 JPQL로 짜다보니 다음과 같은 코드가 나왔다. shopTypes가 0개부터 3개이니 해당 값마다 케이스 별로 나누어..
2024.03.06