Repository
JPA 레파지토리 인터페이스
DB 접속 함수들이 있음
( CRUD 함수들 )
( * 예시 * )
@Repository // @Repository - 클래스 위에 붙이고 , 스프링 서버가 실행될때 자동으로 객체 1개를 만들어줌 (IOC)
// TODO : 인터페이스명 extends JpaRepository<모델클래스명 , 기본키의 자료형>
public interface DeptRepository extends JpaRepository<Dept,Integer> {
}
< 어노테이션 >
속성 | 특징 |
@Repository | 이것은 Repository 여! ( 인터페이스명 extends ) JpaRepository<모델클래스명 , 기본키 자료형> |
뭐 여러가지 있다만..
< 사용할 수 있는 함수들 >
CRUD 함수
( Interface CrudRepository )
( count, delete, deleteAll, deleteAllById, deleteById, existsById, findById, save 등의 기본적인 메서드 )
Repository 함수명 | 특징 | 리턴값 |
findAll | DB 전체조회 함수 | List<T> |
findById | 기본키 값으로 한건 조회 | Optional<T> |
save | 기본키가 있으면 : 저장 요청 기본키가 없으면 : 수정 요청 |
Entity |
existsById | 기본키 값으로 정보가 있는지 확인 | boolean |
deleteById | 기본키 값으로 삭제 요청 | void |
List CRUD 함수
( Interface ListCrudRepository )
QueryCreation 함수
( Interface QueryByExampleExecutor )
영속성 관련 함수
Repository 함수명 | 특징 | 리턴값 |
flush() | 현재의 트랜잭션에서 관리되고 있는 영속성 컨텍스트에 있는 변경 내용을 데이터베이스에 즉시 반영하는 메소드입니다. 모든 변경 내용이 즉시 데이터베이스에 반영되므로, 데이터베이스와의 동기화 작업이 매우 빈번하게 발생할 수 있습니다. 이는 성능상 이슈를 유발할 수 있으므로, 적절한 상황에서만 메소드를 사용하는 것이 좋습니다. | |
saveAndFlush | 엔티티를 저장하고, 영속성 컨텍스트의 변경 내용을 즉시 데이터베이스에 반영합니다. | S saveAndFlush(S entity) |
deleteAllInBatch | 모든 엔티티를 데이터베이스에서 삭제합니다. 이 메소드는 deleteAll() 메소드와 달리 영속성 컨텍스트를 거치지 않고 바로 데이터베이스에서 삭제하기 때문에, 대규모 데이터 삭제 작업에 적합합니다. |
'SpringBoot > JPA' 카테고리의 다른 글
SpringBoot - JPA - 페이징 처리 (1) | 2023.10.18 |
---|---|
SpringBoot - JPA - 쿼리 메소드와 @Query 어노테이션 (0) | 2023.10.17 |
SpringBoot - JPA - Entity class (1) | 2023.10.16 |
SpringBoot - JPA - BaseTimeEntity (생성일자 , 수정일자) (0) | 2023.10.16 |
SpringBoot - JPA 라이브러리 실습을 위한 설정 (0) | 2023.10.16 |