querydsl : jqpl vs querydsl
This commit is contained in:
2
querydsl/.gitignore
vendored
2
querydsl/.gitignore
vendored
@@ -35,3 +35,5 @@ out/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
|
||||
db.mv.db
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.example.querydsl;
|
||||
|
||||
import com.example.querydsl.entity.Member;
|
||||
import com.example.querydsl.entity.QMember;
|
||||
import com.example.querydsl.entity.Team;
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
import org.assertj.core.api.Assertions;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.persistence.EntityManager;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
@SpringBootTest
|
||||
@Transactional
|
||||
public class QuerydslBasicTest {
|
||||
|
||||
@Autowired
|
||||
EntityManager em;
|
||||
|
||||
JPAQueryFactory queryFactory;
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach(){
|
||||
queryFactory = new JPAQueryFactory(em);
|
||||
|
||||
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("member2", 20, teamA);
|
||||
Member member3 = new Member("member3", 30, teamB);
|
||||
Member member4 = new Member("member4", 40, teamB);
|
||||
em.persist(member1);
|
||||
em.persist(member2);
|
||||
em.persist(member3);
|
||||
em.persist(member4);
|
||||
}
|
||||
|
||||
@Test
|
||||
void startJPQL() {
|
||||
// find member1
|
||||
String qlString = "select m from Member m where m.username = :username";
|
||||
Member findMember = em.createQuery(qlString, Member.class)
|
||||
.setParameter("username", "member1")
|
||||
.getSingleResult();
|
||||
|
||||
assertThat(findMember.getUsername()).isEqualTo("member1");
|
||||
}
|
||||
|
||||
@Test
|
||||
void startQuerydsl() {
|
||||
QMember m = new QMember("m");
|
||||
|
||||
Member findMember = queryFactory
|
||||
.select(m)
|
||||
.from(m)
|
||||
.where(m.username.eq("member1")) // 파라미터 바인딩 처리
|
||||
.fetchOne();
|
||||
|
||||
assertThat(findMember.getUsername()).isEqualTo("member1");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user