일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- JDBC
- 백준
- http
- Exception
- spring
- 인프런
- QueryDSL
- Proxy
- 스프링
- jpa
- Thymeleaf
- JPQL
- Spring Boot
- 스프링 핵심 원리
- 김영한
- AOP
- 자바
- 알고리즘
- SpringBoot
- Greedy
- transaction
- 스프링 핵심 기능
- Android
- kotlin
- 그리디
- springdatajpa
- java
- db
- Servlet
- pointcut
- Today
- Total
목록QueryDSL (27)
개발자되기 프로젝트
해당 기능은 제약이 커서 실무에서 사용하기에는 현실적으로 어려움..ㅜㅜ 1. 인터페이스 지원 : QuerydslPredicateExecutor Repository가 QuerydslPredicateExecutor을 상속받으면 메서드에 Querydsl에서 사용하는 조건을 넘겨줄 수 있다. @Test public void querydslPredicateExecutorTest(){ Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(teamA); em.persist(teamB); Member member1 = new Member("member1", 10, teamA); Member member2 = new Member("membe..
1. Controller개발 @GetMapping("/v2/members") public Page searchMemberV2(@ModelAttribute MemberSearchCondition condition, Pageable pageable){ return memberRepository.searchPageSimple(condition, pageable); } @GetMapping("/v3/members") public Page searchMemberV3(@ModelAttribute MemberSearchCondition condition, Pageable pageable){ return memberRepository.searchPageComplex(condition, pageable); } Query..
1. SpringData Paging 활용 스프링 데이터의 Page, Pageable을 활용해보자. 전체 카운트를 한번에 조회하는 단순한 방법 데이터 내용과 전체 카운트를 별도로 조회하는 방법 2. 인터페이스에 두 가지 기능 추가 public interface MemberRepositoryCustom { List search(MemberSearchCondition condition); Page searchPageSimple(MemberSearchCondition condition, Pageable pageable); Page searchPageComplex(MemberSearchCondition condition, Pageable pageable); } 3. 전체 카운트를 한번에 조회하는 단순한 방법 s..
1. SpringDataJPA 적용 public interface MemberRepository extends JpaRepository { List findByUsername(String username); } 2. 사용자 정의 Repository Querydsl을 사용하려면 사용자 정의 Repository 사용 필요함. 사용자 정의 리포지토리 사용법 사용자 정의 인터페이스 작성 사용자 정의 인터페이스 구현 스프링 데이터 리포지토리에 사용자 정의 인터페이스 상속 MemberRepository 가 MembeRepositoryCustom을 상속 받기 때문에 search() 사용 가능. spring 에서 자동으로 구현체 매핑해줌. 2.1 MemberRepository public interface Member..
데이터 확인을 위해서 샘플 데이터를 추가하자. 테스트케이스 실행에 영향을 주지 않기 위해 톰캣이 돌아갈 때만 샘플 데이터가 들어가도록 설정하자. --> 테스트케이스, 톰캣의 프로파일 분리 1. 프로파일 설정 main.resources.application.yml test.resources.application.yml 2. 샘플 데이터 추가 @Profile 을 통해 application.yml의 active와 대응됨. @PostConstruct : bean 생성 이후 해당 메서드 실행. JPA 데이터 변경은 Transaction안에서 이루어져야함 @Profile("local") @Component @RequiredArgsConstructor public class InitMember { private fi..
1. Builder @Data public class MemberTeamDto { private Long memberId; private String username; private int age; private Long teamId; private String teamName; public MemberTeamDto() { } @QueryProjection public MemberTeamDto(Long memberId, String username, int age, Long teamId, String teamName) { this.memberId = memberId; this.username = username; this.age = age; this.teamId = teamId; this.teamName..
1. 순수 JPA Repository -> Querydsl @Repository public class MemberJpaRepository { private final EntityManager em; private final JPAQueryFactory queryFactory; public MemberJpaRepository(EntityManager em) { this.em = em; this.queryFactory = new JPAQueryFactory(em); } public void save(Member member){ em.persist(member); } public Optional findById(Long id){ Member findMember = em.find(Member.class, id..
1. SQL Function 호출 SQL Function은 JPA와 같이 Dialect에 등록된 내용만 호출이 가능함. 2. member를 M으로 변경하는 replace 함수 사용 @Test public void sqlFunction(){ List result = queryFactory .select(Expressions.stringTemplate( "function('replace', {0}, {1}, {2})", member.username, "member", "M")) .from(member) .fetch(); for (String s : result) { System.out.println("s = " + s); } } select function('replace', member1.username,..