728x90
반응형

IT 정보/JPA 2

[JPA] @Transactional(readOnly = true) 란?

@Transactional(readOnly = true) 란?@Transactional(readOnly = true)는 JPA(Spring Data JPA 포함) 환경에서 읽기 전용 트랜잭션을 선언할 때 사용하는 어노테이션 속성입니다. 이 설정은 단순한 옵션처럼 보일 수 있지만, 실제로는 JPA 내부 동작, JDBC 연결, 성능에 중요한 영향을 미칩니다.✅ 1. 기본 개념@Transactional(readOnly = true)public List getAllUsers() { return userRepository.findAll();}위와 같이 선언하면 해당 메서드에서 실행되는 트랜잭션은 쓰기 작업 없이 읽기 작업만 수행하겠다는 의미입니다. Spring은 이를 통해 내부적으로 몇 가지 최적화를 적용합..

IT 정보/JPA 2025.04.09

Spring Data JPA 쿼리를 작성 방식

✅ 다른 방식과의 비교 요약 (상세)항목JPA 기본JPQL네이티브 SQLSpecificationQuerydsl구현 복잡도매우 낮음낮음보통보통높음동적 조건 처리불가어려움복잡쉬움매우 쉬움타입 안전성낮음낮음낮음낮음높음가독성/유지보수보통보통낮음보통~낮음좋음조인/서브쿼리불가제한적가능제한적강력페이징/정렬자동 지원수동 또는 Pageable수동 처리 필요자동 지원자동 지원  ✅ JPA 기본 & Querydsl요구사항메서드 이름 기반Querydsl단순 조회 (id, status)✔ 가능-검색어 포함 여부 (키워드)✘ 어려움✔ Querydsl로 처리날짜 범위 검색✘ 어려움✔ Querydsl로 처리동적 조건: 특정 조건이 있을 때만 필터 적용✘ 불가능✔ Querydsl의 BooleanBuilder 사용정렬/페이징✔ 가능 (..

IT 정보/JPA 2025.04.07
728x90
반응형