728x90

스프링데이터 2

[Querydsl] 동적 정렬 sort를 위한 OrderSpecifier 클래스

querydsl을 사용하면서 페이징 처리 및 검색기능 추가하고 있었다. 정렬 기능까지 추가하면서, 이것을 동적으로 처리 할 수는 없나? 라는 생각에 OrderSpecifier이라는 클래스를 알게되어 잠깐 기록을 남겨본다. 참고로 정적으로 정렬을 처리하기 위해선 ex) orderBy(user.userId.asc()) 이런식으로 처리를 할 수 있다. 하지만 이렇게 정적으로 박아두면 불편하지 않겠는가? Sort에 대한 부분을 설정해놨다면, 정렬에 대한 부분을 동적으로 활용하고 싶었다. pageRequest에 페이징 처리가 되어있고, sort에 관한 정보를 가져오려고 했으나, getSort()를 읽지 못했다. 인자를 검색보니 OrderSpecifier 이라는 녀석을 이용해줘야하는걸 알아냈음. 명세서를 살펴보니,..

Database 2023.01.19

Spring Data & JPA & Hibernate 차이점

Spring Data JPA Spring Data JPA는 Spring Framework에서 제공하는 모듈 중 하나로, 개발자가 JPA를 좀 더 쉽고 편하게 사용 할 수 있도록 도와준다. 특징을 잠깐 살펴보자면, Hibernate와 같은 구현체들을 좀 더 쉽게 사용할 수 있도록 추상화한 것. JPA를 한 단계 추상화시킨 Repository 인터페이스를 제공. 개발자가 Repository 인터페이스에 정해진 규칙대로 메소드를 입력하면, Spring이 알아서 해당 메소드 이름에 적합한 쿼리를 날리는 구현체를 만들어서 Bean으로 등록. Hibernate와 Spring Data JPA를 사용하는 데에는 사실 큰 차이가 없지만 Spring Data JPA가 권장되는 이유는 크게 두 가지. 구현체 교체의 용이성 ..

728x90