본문 바로가기

반응형

Spring

(19)
3) Spring Data JPA 3부 - @Query , QueryDSL 3부에서는 실제 데이터를 조회할때 Query를 어떤 식으로 사용하는지에 대해 공부해 보자. 데이터를 조회 할때 아래 소스와 같이 JpaRepository를 상속 받게 되면 기본적으로 find 함수가 제공된다. 이것은 조회하고자 하는 Entity의 @Id 컬럼의 값으로 조회가 되게 된다. 그러나 실제 Query에서는 여러 컬럼을 값으로 like 조회나 날짜 조회를 사용하게 되는데 이를 하기 위해 3가지 정도의 방법이 사용되는것 같다. 첫째 JpaRepository를 이용한 함수명으로 쿼리하기 둘째 @Query 를 사용하기 셋째 QueryDSL 이용하기 1. JpaRepository를 이용한 함수명으로 쿼리하기 @Repository public interface ProductRepository extends..
2) Spring Data JPA 2부 - @OneToMany ,@ManyToOne , Casecade 앞선 1부에 이어서 2부에서는 cascade 옵션에 대해 알아 보자. #cascade : 영속성전이 Type을 설정 한다고 하는데 .. 뭔가 단어가 어렵다. 정확히 어떤 역활을 하는지 보자. type의 종류는 ALL , PERSIST , MERGE ,REMOVE ,REFRESH,DETACH 가있다. 여기서 ALL을 당연히 모든 Type을 다 넣은것이고 각각에 대해 알아보자. 먼저 cascade 옵션을 빼고 Product를 저장해보자. @OneToMany(mappedBy = "product" , targetEntity = Item.class , fetch = FetchType.EAGER) private List items = new ArrayList(); @Transactional public String..
1) Spring Data JPA 1부 - 설정 및 예제 한 10년전에 하이버네이트를 사용해서 도메인 모델링과 ORM 프로그래밍을 했었고 여러가지 장단점을 많이 느꼈었다. 그떄 당시에는 하이버네이트보다는 iBatis를 많이 사용하는 추세였고 하이버네이트에 좀 부정적인 입장이였는데 최근에 보니 Spring Data JPA 나 하이버네이트 처럼 ORM 프레임워크를 많이 사용하고 있는것을 알게 되어 다시 ORM에 대해 공부해 보려고 한다. 먼저 JPA는 왜 쓰는걸까? 에 대해 궁금하다. 어떤 장점이 있어서 사용할까? 기존의 SQL 중심 개발에 어느정도 벗어날수 있다. 기존의 ibatis의 경우는 SQL를 직접 만들고 해당 SQL이 변화면 해당 SQL의 DTO도 변경해야 되는데 JPA는 이 문제에서 어느정도 벗어나게 해준다. 반대인 경우도 field가 늘어나면 해당되..

반응형