본문 바로가기
728x90
반응형

@Transactional3

[SpringBoot] @Transactional 사용 방식 정리 안녕하세요. J4J입니다. 이번 포스팅은 @Transactional 사용 방식에 대해 적어보는 시간을 가져보려고 합니다. @Transactional이란? @Transactional은 Spring에서 사용 가능한 어노테이션 중 하나로 트랜잭션의 원칙이 지켜질 수 있도록 도와줍니다. 조금 더 단순한 기능에 대해서 말해보면, 비즈니스 로직이 동작되는 과정에서 에러가 발생되면 DB 작업을 모두 롤백을 시켜주고 에러가 발생되지 않으면 DB 작업을 모두 커밋하도록 도와줍니다. 비즈니스 로직에서 트랜잭션 처리가 이루어지는 계층은 Service Layer로 정의되고 있습니다. 즉, Spring 개발을 하다 보면 Controller - Service - Repository의 형태가 구성되기 마련인데 이중 Service .. 2023. 9. 25.
[JPA] could not initialize proxy - no Session 에러 안녕하세요. J4J입니다. JPA를 사용하다가 연관관계 매핑을 위해 @OneToMany 어노테이션을 추가한 뒤 findAll() 메서드를 테스트했는데 다음과 같은 에러가 저를 반겼습니다. "failed to lazily initialize a collection of role: className, could not initialize proxy - no Session" 위의 에러가 나올 때 @Transactional을 추가해줬더니 에러가 해결되었습니다. package com.spring.jpa; import javax.transaction.Transactional; import org.junit.Test; import org.junit.runner.RunWith; import org.springframe.. 2021. 4. 6.
[JPA] @Query, 직접 쿼리 작성 안녕하세요. J4J입니다. 이번 포스팅은 JPA에서 직접 쿼리를 작성할 수 있게 해주는 @Query에 대해 적어보는 시간을 가져보려고 합니다. JPQL JPA가 쿼리를 자동으로 생성해주지만 상황에 따라 직접 쿼리를 작성할 필요가 생기게 됩니다. JPA에서 직접 쿼리를 작성할 수 있는 방법은 다음과 같이 2가지가 있습니다. JPQL로 작성 일반 SQL로 작성 JPQL이라고 하는 것은 JPA의 일부분으로 정의된 플랫폼 독립적인 객체지향 쿼리 언어입니다. JPA에서 사용할 수 있는 쿼리 언어로 일반 SQL이 데이터베이스를 바라보고 작성한다면 JPQL은 엔티티 클래스를 바라보고 작성해야 합니다. JPQL과 SQL모두 직접 쿼리를 작성하는 방법은 동일하게 @Query어노테이션을 이용하면 됩니다. 그리고 @Quer.. 2021. 3. 29.
728x90
반응형