Skip to content

Commit 0033ee0

Browse files
committed
querydsl
1 parent b8db159 commit 0033ee0

File tree

7 files changed

+78
-6
lines changed

7 files changed

+78
-6
lines changed

.DS_Store

8 KB
Binary file not shown.

querydsl/src/main/java/study/querydsl/controller/MemberController.java

+7
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@
55
import org.springframework.data.domain.Page;
66
import org.springframework.data.domain.Pageable;
77
import org.springframework.data.domain.Slice;
8+
import org.springframework.validation.BindingResult;
89
import org.springframework.web.bind.annotation.GetMapping;
10+
import org.springframework.web.bind.annotation.ModelAttribute;
911
import org.springframework.web.bind.annotation.RestController;
12+
import study.querydsl.dto.MemberDto;
1013
import study.querydsl.dto.MemberSearchDto;
1114
import study.querydsl.dto.MemberTeamDto;
1215
import study.querydsl.entity.Member;
@@ -15,6 +18,7 @@
1518

1619
import java.util.ArrayList;
1720
import java.util.List;
21+
import java.util.Optional;
1822

1923
@Slf4j
2024
@RestController
@@ -27,6 +31,9 @@ public class MemberController {
2731
@GetMapping("/v1/members")
2832
public List<MemberTeamDto> searchMemberV1(MemberSearchDto memberSearchDto) {
2933
Member member = new Member("DSa",25);
34+
Optional<Member> findMember = memberRepositoy.findById(5L);
35+
36+
3037

3138
List<Object> list = new ArrayList<>();
3239
list.add(member);
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,50 @@
1-
package study.querydsl.dto;public class Custom {
1+
package study.querydsl.dto;
2+
3+
import lombok.Getter;
4+
import org.springframework.web.multipart.MultipartFile;
5+
6+
import java.io.File;
7+
import java.io.IOException;
8+
import java.io.InputStream;
9+
10+
@Getter
11+
public class Custom implements MultipartFile {
12+
13+
String name;
14+
15+
String originalFilename;
16+
17+
String contentType;
18+
19+
private final byte[] bytes;
20+
21+
public Custom(byte[] bytes) {
22+
this.bytes = bytes;
23+
}
24+
25+
26+
@Override
27+
public boolean isEmpty() {
28+
return false;
29+
}
30+
31+
@Override
32+
public long getSize() {
33+
return 0;
34+
}
35+
36+
@Override
37+
public byte[] getBytes() throws IOException {
38+
return new byte[0];
39+
}
40+
41+
@Override
42+
public InputStream getInputStream() throws IOException {
43+
return null;
44+
}
45+
46+
@Override
47+
public void transferTo(File dest) throws IOException, IllegalStateException {
48+
49+
}
250
}

querydsl/src/main/java/study/querydsl/dto/MemberDto.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,21 @@
55
import lombok.Data;
66
import lombok.NoArgsConstructor;
77

8+
import java.io.ByteArrayOutputStream;
9+
import java.io.IOException;
10+
811
@Data
912
@NoArgsConstructor
1013
public class MemberDto {
1114

1215
private String username;
1316
private int age;
1417

18+
1519
@QueryProjection
16-
public MemberDto(String username, int age) {
20+
public MemberDto(String username, int age) throws IOException {
21+
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
22+
Custom custom = new Custom(byteArrayOutputStream.toByteArray());
1723
this.username= username;
1824
this.age= age;
1925
}

querydsl/src/main/java/study/querydsl/repository/MemberRepositoryImpl.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,12 @@
99
import com.querydsl.jpa.impl.JPAQueryFactory;
1010
import lombok.RequiredArgsConstructor;
1111
import org.springframework.data.domain.*;
12+
import org.springframework.data.jpa.repository.support.SimpleJpaRepository;
1213
import org.springframework.data.support.PageableExecutionUtils;
1314
import study.querydsl.dto.MemberSearchDto;
1415
import study.querydsl.dto.MemberTeamDto;
1516
import study.querydsl.dto.QMemberTeamDto;
16-
import study.querydsl.entity.Member;
17-
import study.querydsl.entity.QMember;
1817

19-
import javax.persistence.EntityManager;
2018
import java.util.ArrayList;
2119
import java.util.List;
2220

@@ -84,6 +82,7 @@ public Page<MemberTeamDto> searchPageComplex(MemberSearchDto memberSearchDto, Pa
8482
.limit(pageable.getPageSize())
8583
.fetch();
8684

85+
8786
JPAQuery<Long> countQuery = jpaQueryFactory
8887
.select(member.count())
8988
.from(member)

querydsl/src/main/resources/application.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ spring:
1313
hibernate:
1414
show_sql: true
1515
format_sql: true
16-
# open-in-view: false
16+
open-in-view: false
1717
jooq:
1818
sql-dialect: org.hibernate.dialect.MySQL8Dialect
1919

querydsl/src/test/java/study/querydsl/QuerydslBasicTest.java

+12
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import com.querydsl.jpa.impl.JPAQuery;
1616
import com.querydsl.jpa.impl.JPAQueryFactory;
1717
import org.junit.jupiter.api.BeforeEach;
18+
import org.junit.jupiter.api.DisplayName;
1819
import org.junit.jupiter.api.Test;
1920
import org.springframework.beans.factory.annotation.Autowired;
2021
import org.springframework.boot.test.context.SpringBootTest;
@@ -29,7 +30,11 @@
2930
import study.querydsl.entity.*;
3031

3132
import javax.persistence.EntityManager;
33+
import java.time.LocalDateTime;
34+
import java.util.HashMap;
3235
import java.util.List;
36+
import java.util.Map;
37+
import java.util.Optional;
3338

3439
//static import
3540
import static com.querydsl.jpa.JPAExpressions.*;
@@ -168,6 +173,8 @@ public void sort() {
168173
.where(member.age.eq(100))
169174
.orderBy(member.age.desc(), member.username.asc().nullsLast())
170175
.fetch();
176+
177+
171178
Member member5 = members.get(0);
172179
Member member6 = members.get(1);
173180
Member memberNull = members.get(2);
@@ -217,6 +224,7 @@ public void aggregation() {
217224
* 팀의 이름과 각 팀의 평균 연령을 구하라
218225
*/
219226
@Test
227+
@DisplayName("간단 테스트")
220228
public void group() {
221229
List<Tuple> result = jpaQueryFactory
222230
.select(
@@ -581,6 +589,10 @@ public void findDtoByQueryProjection() {
581589
for (MemberDto memberDto : memberDtos) {
582590
System.out.println("memberDto = " + memberDto);
583591
}
592+
LocalDateTime time = LocalDateTime.now();
593+
594+
Optional<String> text = Optional.ofNullable("ads");
595+
584596
}
585597

586598

0 commit comments

Comments
 (0)