Spring/jpa

[JPA] 리포지토리 관련 어노테이션

라임온조 2023. 3. 7. 11:05

1. @Query

1) 개념

리포지토리 메소드에 직접 쿼리를 정의하고 싶을 때 사용

2) 속성

nativeQuery

네이티브 sql을 사용하고 싶을 때 해당 속성을 true로 설정

2. @Param

1) 개념

sql을 직접 작성한 후 파라미터를 바인딩 할 때 사용

3. @Modifying

1) 개념

모든 데이터에 일괄적인 업데이트를 날려야 하는 경우 벌크성 수정 쿼리를 사용하는데 그때 사용

2) 속성

clearAutomatically

4. @Repository

1) 개념

JPA예외를 스프링이 추상화한 예외로 변환

5. @Transactional

1) 개념

서비스 계층에서 트랜잭션을 시작하지 않으면 리포지토리에서 트랜잭션을 시작하도록 함. 스프링 데이터 jpa가 제공하는 공통 인터페이스를 사용하면 데이터를 변경하는 메소드에 @Transactional로 트랜잭션 처리가 되어 있다. jpa의 모든 변경은 트랜잭션 안에서 이루어져야 하기 때문에 이런 어노테이션이 사용된다.

2) 속성

readonly

  • 데이터를 조회하지 않는 메소드에 true로 설정
  • 플러시 생략해서 성능 향상 가능

 

 

'Spring > jpa' 카테고리의 다른 글

[JPA] 스프링 데이터 JPA  (0) 2023.02.23
[JPA] JPA를 사용하는 다양한 방법  (0) 2023.02.23
[JPA] 조인 테이블  (0) 2023.02.21
[JPA] 복합키와 식별 관계 매핑  (0) 2023.02.16
[JPA] 고급 매핑 관련 어노테이션  (0) 2023.02.16