본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


반응형

JPA/Spring data JPA

(12)
Spring Data JPA @Query-엔티티 조회 @Query Repository 메서드에 쿼리 정의하기 리파지토리 메서드에 @Query를 통해 바로 쿼리를 작성해놨고 메서드에서는 @Param을 통해 파라미터를 가져왔다. 위의 메서드를 통해 생성된 쿼리 username과 age가 where 절에 들어 갔다. 장점 -애플리케이션 로딩시점에 지정된 쿼리를 SQL로 파싱해보고 문제가 있으면 오류를 낸다.
Spring Data JPA Named query 기능 Named query 기능 -엔티티에 쿼리를 지정해놓고 메서드에서 불러다가 사용할 수 있다. 1.순수 JPA NamedQuery 기능 엔티티에 @NamedQuery 어노테이션을 통해 쿼리를 지정해준다 name에는 메소드명 , query에는 사용할 쿼리 리파지토리에 메서드를 만들어주고 createNamedQuery를 통해 엔티티에 지정해놓은 NamedQuery를 불러올 수 있다. 위에 메서드를 실행한 결과 쿼리다 유저네임이 where 절에 들어갔다. 스프링 데이터 JPA에서는 더 편리하게 위의 기능을 사용할 수 있다. 1.스프링 데이터 JPA에서 NamedQuery 사용 리파지토리 인터페이스에서 @Query를 사용해 엔티티에 지정해놓은 @NamedQuery를 불러온다 파라미터를 불러올 경우 @Param을 ..
Spring Data JPA query method 기능 query method 기능 - Spring Data JPA에 구현되지 않은 기능을 구현하고 싶을때 query method를 사용한다. - 메서드 이름을 통해서 쿼리를 만들어낸다. 위 메서드는 순수 JPA로 유저이름과 나이를 파라미터로 받아 유저이름이 일치하고 나이가 파라미터로 받은 나이 보다 많은 유저를 찾아내는 메서드이다 위는 spring data jpa에서 querymethod기능으로 만든 메서드다 메서드명을 통해 쿼리가 작성되고 파라미터가 바인딩 된다. 정해진 프로퍼티를 통해 작동하기 때문에 맞춰진 형식에 맞게 메소드명을 만들어야한다. 정해진 프로퍼티들 조회: find ... By ,read...By, query...By get...By count: count ...By -> long 타입 반환 ..
Spring Data JPA Spring에서 JPA를 더 편하게 사용하기 위해서 사용하는 라이브러리 인터페이스 형식으로 되있으며 구현체없이 인터페이스를 상속을 받아 기능들을 사용한다. 리파지토리를 인터페이스 형식으로 만들고 해당 리파지토리를 사용하는 곳에서 @Autowired를 통해 인젝션을 받을때 프록싱을 통해 객체를 생성하고 스프링 데이터 JPA가 자동으로 기능들이 내장되 있는 리파지토리를 만들어 인젝션해 준다. 라이브러리를 보면 spring data commons 가있고 spring data jpa가 있다 spring data commons는 공통 기능 저장되 있고 CrudRepository PagingAndSortingRepository 같은 것들이 있다 spring data jpa는 JPA관련 기능 저장되있고 JpaRepo..

반응형