JPA 6

Querydsl Tech Talk 정리

사내에서 Querydsl에 대해 Tech Talk 진행할 기회가 생겨 준비한 내용을 기록합니다 Querydsl 타입에 안전한 방식으로 HQL 쿼리를 실행하기 위한 목적으로 만들어짐 타입에 안전하도록 도메인 모델을 변경하면 소프트웨어 개발에서 큰 이득을 얻게 됨 도메인 변경이 직접적으로 쿼리에 반영됨 쿼리 작성 과정에서 코드 자동완성 기능을 사용함으로써 쿼리를 더 빠르고 안전하게 만들 수 있게 됨 JPA, JDO, JDBC, Lucene, Hibernate Search, MongoDB, Collections 그리고 RDFBean을 지원 사용하기 도메인 타입 작성(ex: Customer) Querydsl에 의해 자동으로 QCustomer라는 쿼리타입 생성 (JPA의 경우) JPAQuery 인스턴스로 쿼리 작..

Spring 2021.08.10

SpringBoot Mysql Datasource 세팅

SpringBoot에서 Mysql Datasource 세팅하기. 필자는 JPA, Gradle로 진행했다.(Mybatis같은 환경도 아래 세팅으로 사용가능 할 듯) Gradle.build dependencies { ... implementation ("mysql:mysql-connector-java") implementation "org.springframework.boot:spring-boot-starter-data-jpa" ... } JPA 사용시에만 JPA 의존을 추가하자 DatabaseConfig.java @Slf4j @EnableJpaAuditing @Configuration public class DatabaseConfig { @Bean public PasswordEncoder passwordE..

Spring 2020.11.16

Spring Jpa - Query DSL + Gradle 6 설정

최근 Spring boot + jpa 로 프로젝트 진행하다 jpa 인터페이스 네이밍 방식의 단점을 느끼고 Query DSL을 도입하면서 정리한 글 기본 제공 @Query와 인터페이스 메서드 네이밍 방식은 한계가 있고 가독성도 안좋음 // 쿼리가 길어질수록 더러워짐 @Query(value="UPDATE Work W SET W.workGroup = :workGroup WHERE W.workSeq = :workSeq", nativeQuery = false) // 네이밍이 길어질수록 더러워짐 Page findByWorkGroup_WorkGroupNmContainingAndWorkNmContaining(String workGroupNm, String workNm, Pageable pageable); 1. Grad..

Spring 2020.09.21

Spring Jpa - Paging api 처리하기

JPA를 이용해서 Paging API를 처리해보자. JpaRepository는 PagingAndSortingRepository를 상속받고 있으므로 CurdRepository보다 하위 클래스인 JpaRepository를 상속받아 구현하자. public interface WorkGroupRepository extends JpaRepository { Page findByWorkGroupNmContaining(String workGroupNm, Pageable pageable); } 예제 @RestController @RequestMapping("/workgroup") @RequiredArgsConstructor public class WorkGroupController { @GetMapping public P..

Spring 2020.09.18

Spring Security + Rest

Spring Security는 기본적으로 인증 과정에서의 결과를 redirect로 처리합니다. 인증 성공 시 success page 인증 실패 시 failure page 비인가 접근 시 authentication page 크게 세가지의 행동에 대한 처리를 page redirect가 아닌 response를 반환하게 만들면 됩니다. 이러한 컨셉을 잡고 구현해 나가봅시다. 모든 소스는 https://github.com/lteawoo/RestSpringSecurity에서 확인 하실 수 있습니다. Spring Security 기본 인증의 경우 UsernamePasswordAuthenticationFilter에서 formlogin 요청을 필터링하여 처리합니다. 이 클래스는 AbstractAuthenticationP..

Spring 2020.02.19