implementation 'com.querydsl:querydsl-jpa:5.0.0' annotationProcessor( "javax.persistence:javax.persistence-api", "javax.annotation:javax.annotation-api", "com.querydsl:querydsl-apt:5.0.0:jpa") 위 코드를 build.gradle에 추가하고, 최상위 폴더 아래에 있는 build.generated.sources.annotationProcesser.java.main 폴더를 잘 확인해보면 엔티티를 기반으로 한 Q~~~~ 클래스들이 생성되어있을 것이다.하지만, 위치가 마음에 들지 않는 경우에는 지정할 수 있는 방법이 있다. plugins { id 'java' id ..
MemberDTOpackage study.querydsl.dto; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; @Data @Builder @NoArgsConstructor public class MemberDTO { private String username; private int age; public MemberDTO(String username, int age) { this.username = username; this.age = age; } } JPQL에서 DTO로 조회하는 방법은 다음과 같다. @Test public void findDtoByJPQL(){ //아래와 같이 생성자를 사용하는 것과 같은 문법으로..
DTO의 생성자에 붙이는 어노테이션@QueryProjection 을 사용하면, DTO의 QType을 만들 수 있고, 그걸 사용해서 쿼리문을 생성할 수 있다. UserDTO@Data @NoArgsConstructor @Builder public class UserDTO { private String name; private int age; @QueryProjection public UserDTO(String name, int age) { this.name = name; this.age = age; } }이후, complieQuerydsl을 하면, DTO의 Q타입이 생성된다.@Test public void findDtoByQueryProjection() throws Exception{ //given List..
BooleanBuilder를 사용해서 해결하는법과 Where문에서 다중 파라미터를 사용하는 방법 두가지가 존재 BooleanBuilder@Test public void 동적쿼리_booleanBuilder() throws Exception{ //given String usernameParam = "member1"; Integer ageParam = 10; //when List members = searchMember1(usernameParam, ageParam); //then members.forEach(member1 -> System.out.println("member1 = " + member1)); assertThat(members.size()).isEqualTo(1); } //동적 검색 조건을 영어로..
- Total
- Today
- Yesterday
- dto
- security
- Config
- Java
- 커맨드객체
- QueryDSL
- SSAFY
- 배열
- 일대다
- test
- 다대일
- Python
- 데이터베이스 설계
- ModelAttribute
- spring data JPA
- JPA
- 작업 순서정리
- 취업
- 코딩테스트
- @BaseEntity
- 11기
- notion
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |