전체 글 960

10. 결과 조회

지금까지 fetchOne()해서 단건 조회만 함 fetch() // 리스트 조회, 데이터 없으면 빈 리스트 반환 fetchOne() // 단건 조회, 데이터 없으면 null, 결과가 둘 이상이면 Exception fetchFirst() // limit(1).fetchOne(), 즉 처음 페이지의 맨처음 데이터 단건만 조회 fetchResults() // 페이징 정보 포함, total count 쿼리 추가 실행. 즉 페이징하고 페이징 데이터 포함 객체 가져오기 용 fetchCount() // count 쿼리 날려서 count만 조회. 일단은 fetch(), fechOne(), fetchFirst() List fetch = query.selectFrom(m).fetch(); Member fetchOne = ..

9. 검색 조건 쿼리

예시로 하나 @Test public void search(){ Member result = query.selectFrom(m) .where(m.username.eq("member1").and(m.age.eq(10))) .fetchOne(); assertThat(result.getUsername()).isEqualTo("member1"); } 지금은 조건문은 eq, 조건 연결문?은 and만 썼는데, 엄청 많음 m.username.eq("member1") // username = 'member1' m.usernmae.ne("member1") // username != 'member1' 즉 not equal m.username.eq("member1").not() // username != 'member1' 기..

8. Q타입

@Generated("com.querydsl.codegen.DefaultEntitySerializer") public class QMember extends EntityPathBase { private static final long serialVersionUID = -769675599L; private static final PathInits INITS = PathInits.DIRECT2; public static final QMember member = new QMember("member1"); .... 먼저 Q타입 사용법은 QMember m = QMember.member; QMember m = new QMember("m") //별칭은 무조건 줘야 함. 대충 저렇게 2가지 방법이 있는데, 당연히 위에..

7. JPQL vs QueryDSL

일단 JPQL로 한번 짜보고, 똑같은 걸 QueryDSL로 짜서 비교해 볼거임. @Test public void startJPQL(){ String sql = "select m from Member m where m.username = :username"; Member result = em.createQuery(sql, Member.class) .setParameter("username", "member1") .getSingleResult(); assertThat(result.getUsername()).isEqualTo("member1"); } 뭐 그냥 JPQL이다. select m1_0.member_id, m1_0.age, m1_0.team_id, m1_0.username from member m1_0..

5. H2 DB 설치 및 설정

스프링 부트 h2의 라이브러리의 버전에 맞춰서 H2 설치 db파일 생성 잘 시키고, implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' src/main/resources의 application.yml 파일. default는 application.properties 파일인데 사람마다 선호하는 게 다른 가봄. (회사마다 다를거임) 여튼 없을테니, application.properties 지우고 application.yml 만들어 주셈. spring: datasource: url: jdbc:h2:tcp://localhost/./querydsl username: sa password: driver-class-name: org.h2...