분류 전체보기 954

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...

3. QueryDSL 설정

일단 Gradle에 설정하고(이게 스프링부트 버전이나, 인텔리제이 버전이나, QueryDSL 버전마다 조금씩 다르다고 함.) https://qwefdg3.tistory.com/647 일단은 현재 스프링 부트 3.0 이상 버전은 저걸로 하면 됨. 쿼리DSL은 엔티티에 대하여 자바코드로 쿼리를 짤 수 있게 해주는 것 이므로, (구조 자체가 엔티티 스캔해서 그 엔티티에 대한 클래스를 엔티티마다 구현체를 만들어 놓음. 그게 QueryDSL 파일 들이고, 그걸로 QueryDSL 하는거임.) 그래서 먼저, 테스트 엔티티를 만듦. @Entity @Getter public class TestEntity { @Id @GeneratedValue private Long id; private String username; }..