검색 조건 쿼리 사실 동적 쿼리 Querydsl로 짜고 싶어서 배우는 것!.. @Test public void search() { Member findMember = queryFactory .selectFrom(member) .where(member.username.eq("member1") .and(member.age.eq(10)) ).fetchOne(); assertThat(findMember.getUsername()).isEqualTo("member1"); } 쿼리를 생각해보면 select * from Member m where m.username = 'member1' and m.age = 10; 이런 쿼리이다. /* select member1 from Member member1 where membe..
Spring관련 기술
Querydsl - 기본 QType 활용 Q클래스 인스턴스를 사용하는 2가지 방법 QMember qMember = new QMember("m"); //별칭 직접 지정 QMember qMember = QMember.member; //기본 인스턴스 사용 확인할 수 있다. 한번 더 줄일 수 있는 방법 import static study.querydsl.entity.QMember.member; // import static study.querydsl.entity.QMember.*; -> 권장 @Test public void startQuerydsl() { Member findMember = queryFactory .select(member) .from(member) .where(member.username.eq..
JPQL vs Querydsl JPQL @SpringBootTest @Transactional public class QuerydslBasicTest { @Autowired EntityManager em; @BeforeEach public void before() { 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, t..
QueryDsl 라이브러리 살펴보기 querydsl-apt: Querydsl 관련 코드 생성 기능 제공 QClass 생성해주는 기능 querydsl-jpa: querydsl 라이브러리 아래 selectFrom 이런 메서드 제공 Hello result = query .selectFrom(qHello) .fetchOne(); http://querydsl.com/
Query Dsl 시작하게 된 계기 이전에 프로젝트에서 써봤는데 더 알고 싶어졌고, 최근에는 프로젝트를 JPA로 하지 않았기 때문에 좀 까먹었었다. 정리 겸 나중에 기억나게 세팅하는 법부터 정리할 예정 Gradle설정 Spring Boot 3.x 설정입니다. 2.x설정은 또 다릅니다. 1. 의존성 추가 plugins { id 'java' id 'org.springframework.boot' version '3.2.1' id 'io.spring.dependency-management' version '1.1.4' } group = 'study' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly..
Proxy 대리 남을 대신하여 일을 처리 Spring Proxy Proxy 패턴 Network Proxy 여러가지 의미로 쓰인다. ! tmi) 제가 프록시를 접했던 것은 스프링에서 AOP 기능을 사용하여 공통의 작업을 따로 빼서 전 후로 작업을 수행하려고 할 때였습니다!. (영한님) 로깅 or method의 실행 시간 같은 것을 기록해놓을 때. AOP 기능을 쓸 수 있습니다.! 이때 의존관계 주입에서 진짜 클래스가 아닌 프록시 객체를 등록해놓고 요청이 오면 프록시 객체가 중간에 가로채서 작업을 수행하고(전) 진짜 클래스의 메서드가 실행된 후 또 작업을 실행하는(후) 과정에서 나온 개념이였습니다. 지금은 Network Proxy! 대신 처리하는 서버(간단하게 말하면) 프록시 서버(Proxy Server)는..