@OnDelete 어노테이션은 JPA에서 제공하는 어노테이션 중 하나로, 연관된 엔티티를 삭제할 때 어떻게 처리할 것인지를 지정할 때 사용됩니다. 이번 글에서는 @OnDelete 어노테이션에 대해 자세히 알아보겠습니다. @OnDelete 어노테이션 @OnDelete 어노테이션은 연관된 엔티티가 삭제될 때 어떻게 처리할 것인지를 지정할 때 사용됩니다. 이 어노테이션을 사용하면 다른 엔티티와의 관계를 가진 엔티티가 삭제될 때, 그 관계가 끊어진 후 어떤 동작을 수행할지 지정할 수 있습니다. @Entity public class Order { @ManyToOne @OnDelete(action = OnDeleteAction.CASCADE) private Customer customer; // ... } 위의 예..
Spring Framework은 개발자들이 데이터베이스와 상호작용하기 위해 사용되는 다양한 기능을 제공합니다. 그 중에 @Query 어노테이션은 JPA(Java Persistence API)를 사용할 때 유용하게 쓰이며, 데이터베이스 쿼리를 정의하고 실행할 때 사용됩니다. 이번 글에서는 @Query 어노테이션에 대해 자세히 알아보겠습니다. @Query란? @Query 어노테이션은 JPA에서 제공하는 어노테이션 중 하나로, 데이터베이스 쿼리를 직접 작성하고 실행할 때 사용됩니다. 이 어노테이션을 사용하면 Spring Framework에서 제공하는 Repository 인터페이스를 구현할 때 쿼리를 간편하게 작성하고 사용할 수 있습니다. @Query 어노테이션 사용하기 @Query 어노테이션은 다음과 같이 사..
Spring Framework는 자바 기반의 오픈 소스 애플리케이션 프레임워크로, 의존성 주입(Dependency Injection) 기능을 제공하여 객체 간의 결합도를 낮추고, 유연하고 확장 가능한 애플리케이션을 만들 수 있도록 도와줍니다. Spring Framework에서 @Autowired 어노테이션은 이러한 의존성 주입 기능을 간단하게 사용할 수 있도록 지원해줍니다. @Autowired 어노테이션이란? @Autowired 어노테이션은 스프링에서 제공하는 어노테이션 중 하나로, 스프링 컨테이너에 등록된 빈(bean) 중에서 자동으로 의존성을 주입해주는 역할을 합니다. @Autowired 어노테이션을 사용하면, 의존성을 주입하려는 대상이 스프링 컨테이너에서 관리하는 빈이라면, 해당 빈을 자동으로 주입..
Spring Framework의 @Transaction 소개 @Transactional 주석과 응용프로그램에서 트랜잭션을 관리하는 데 도움이 되는 방법에 대해 살펴보자. transation이란? 트랜잭션(transaction)은 컴퓨터 과학에서 하나의 작업 단위로 실행되는 연산의 집합이다. 트랜잭션은 데이터 일관성과 무결성을 보장하기 때문에 일반적으로 데이터베이스 작업 시 사용ㄷ뇌다.. 트랜잭션을 통해 작업 그룹을 단일 엔터티로 성공 또는 실패하도록 만들 수 있다. 트랜잭션은 일반적으로 ACID(원자성, 일관성, 격리 및 내구성)라는 네 가지 속성으로 구성되는데, 이러한 속성은 트랜잭션이 올바르게 완료되고 데이터가 일관되도록 하는 데 사용된다. @Transactional이란? @Transactional ..
문제 처음 JPA 학습을 시작할 때 Entity 작성 -> Repository 작성 -> test 작성 순으로 코드를 작성하다보면 test 작성에서 다음과 같은 에러를 마주칠 때가 있다. org.springframework.dao.InvalidDataAccessApiUsageException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call; nested exception is javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available fo..