ORM(Object Relational Mapping)

객체지향 언어를 이용하여, 서로 호환되지 않는 타입 간의 데이터를 변환하는 기술

 

Apache iBatis

SQL 데이터 베이스와 객체 간 매핑을 지원해주는 persistence framework

 

Spring Data JPA 인터페이스

단계별로 필요한 기능까지만 사용 가능

- Repository: 기본 repository 인터페이스, 어떤 메소드도 제공하지 않음 

- CrudRepository: Repository + CRUD 기능 제공

- PagingAndSortingRepository: CrudRepository + 페이징, 정렬 기능 제공

- JpaRepository: PagingAndSortingRepository + Spring Data JPA repository 전체 기능

 

 

인터페이스에 작성한 메소드 이름이 곧 쿼리 표현이 됨

ex: List<Event>findByEventStatusAndEventNameOrCapacity(String eventStatus, String eventName, Integer capacity);

- 다이나믹 쿼리를 만들 수는 없음

- 사용 가능한 키워드

  - distinct, and, or, is, not, between, lessThan, lessThanEqual, greaterThen, greaterThenEqual

  - null, isNotNull, like, startingWith, endingWith, containing, orderBy, in true, false, ignoreCase

  - join 등 복잡한 표현은 불가

 

 

@Param: 쿼리 메소드 입력 파라미터에 사용하여 애노테이션 기반 파라미터 바인딩할 때 사용

@QUERY: 직접 JPQL을 작성하고 싶을 때 사용

@ NoReositoryBean: 빈으로 등록하고 싶지 않은 인터페이스를 지정할 수 있음

 - 특정 쿼리 메소드를 기본 메소드로 지정하는 방식으로 운영 가능

 - 특정 메소드를 선택적으로 사용하거나 api에 노출하고자 할 때도 사용하는 테크닉

+ Recent posts