반응형

IT 정보/JPA 3

[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

[JPA] Spring Data JPA 쿼리를 작성 방식

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

IT 정보/JPA 2025.04.07

[JPA] 이론 정리

JPA (Java PersistenceORM (객체 관계 매핑) 으로 객체와 관계형DB를 각각 설계해서 매핑인터페이스의 모음 ( 구현체 : 하이버네이트.. 등등 )SQL 중심 개발 -> 객체 중심 개발JPA CRUD저장 : jpa.persist(member) 조회 : Member member = jpa.find(memberId)수정 : member.setName("변경할 이름")수정하면 자동으로 DB 업데이트 삭제 : jpa.remove(member) JPQL (객체 지향 쿼리)SQL을 추상화한 JPQL 객채지향 쿼리 언어엔티티 객체를 대상으로 쿼리 ( SQL은 데이터베이스 테이블 대상 )SQL 문법과 유사애플리케이션에 필요한 데이터만 DB에서 부르기 위해 검색조건이 포함된 SQL ⭐페이지 ( .setF..

IT 정보/JPA 2022.07.29
반응형