30%
61,600원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결실전! Querydsl
콘솔창에서 로그가 가로로만 나오고 있어요
[질문 내용]여기에 질문 내용을 남겨주세요. 혹시 인텔리 제이에서 쿼리의 결과 들이 가로로 줄줄이 지어서 나오는데 보기가 힘들어서 혹시 정렬하는 방법이 따로 있나요?
- 미해결실전! Querydsl
PDF 제안: -AND 조건을 콤마로 처리-로 수정해야 할 것 같은데 확인 부탁드립니다!
3.기본문법 pdf 파일에서 'AND 조건을 파라미터로 처리' 섹션이 있습니다. 페이지로는 6페이지 정도 되는 것 같습니다. 이 부분에서 AND를 이용한 메서드 체이닝 방식과 함께 predicate를 이용해 콤마로 AND조건을 소개해주시고 있습니다.타이틀을 'AND 조건을 콤마로 처리'로 수정해야 할 것 같은데 한번 확인 부탁드립니다!
- 미해결실전! Querydsl
@Transactional + @Commit의 의미
비슷한 질문이 올라왔는데 질문의 의도와 답변 내용이 불일치하는 것 같아 다시 한번 질문드리겠습니다.@Transactional(readonly=false)는 테스트 후에 자동으로 롤백되는 기본 동작을 방지하기 위해(즉 커밋되도록 하기 위해) 사용됩니다. 이전 강의에서 JUnit 테스트 시 데이터를 변경한 결과를 DB에서 확인하고자 할 때 이 설정을 사용한 것으로 기억합니다. 질문@Transactional은 기본적으로 rollback=true가 디폴트이므로 @Transactional + @Commit은 @Transactional(readonly=false) 같은 의미라고 볼 수 있을까요?
- 해결됨실전! Querydsl
lombok의 @ToString이 가지는 이점
lombok의 @ToString으로 설정해주는 것보다 인텔리제이가 단축키로 toString을 오버라이드 하는 것이 더 간단해보이는데 @ToString이 가지는 이점이 있나요?
- 미해결실전! Querydsl
contextLoads() 테스트 오류 질문드립니다.
@SpringBootTest class QuerydslApplicationTests { @Autowired EntityManager em; @Test void contextLoads() { Hello hello = new Hello(); em.persist(hello); JPAQueryFactory query = new JPAQueryFactory(em); QHello qHello = new QHello("h"); Hello result = query .selectFrom(qHello) .fetchOne(); assertThat(result).isEqualTo(hello); } }강사께서 진행하신 테스트를 똑같이 따라했는데 계속해서 TransactionRequiredException이 발생했습니다. 결국 @Transactional을 붙여주니 테스트가 정상적으로 수행됐는데요, 강의에서는 @Transactional이 없이도 잘 동작했는데 왜 저는 그렇지 않은 이유가 무엇일까요? 참고로 Spring Boot 3.2.5 최신 버전 사용중입니다.
- 미해결실전! Querydsl
application.yml 분리 이유에 대해 궁금합니다.
영한님이 말하시기에 자기는 application-local, dev, 운영 이렇게 나누신다고 하셨습니다. 당연히 나누어야 하는 것에 동의합니다. 하지만 왜 IntelliJ 내에서도 나누어야 하는지 궁금합니다 . 그냥 저는 local yml 만 인텔리제이에 두고 dev yml 은 따로 팀 공동 노션에 보관하는데 그걸 intelliJ 내에서 돌리는 일이 거의 없었던 것 같습니다. 왜 intelli J 내에서 따로 운영 yml 이나 이런 걸 보관하는 건가요??
- 미해결실전! Querydsl
롬복 @AllArgsConstuctor 는 왜 안될까요?
@Data @NoArgsConstructor(access = AccessLevel.PROTECTED) @AllArgsConstructor public class MemberDto { private String username; private int age; /* public MemberDto(String username,int age){ this.username = username; this. age =age; }*/ } 롬복 @All Args 가 아래 주석처리된 생성자 코드를 대체한다고 알 고 있는데 빨간줄이 나오는 이유가 무엇일까요? 그냥 All Args 빼고 직접 생성자 입력하면(주석해제) 하면 잘됩니당.
- 미해결실전! Querydsl
페치조인 관련해서 질문있습
@Test public void fetchJoinNo() throws Exception{ em.flush(); em.clear(); /*Member findMember = queryFactory .selectFrom(member) .where(member.username.eq("member1")) .fetchOne();*/ Tuple tuple= queryFactory .select(member,team) .from(member) .where(member.username.eq("member1")) .fetchOne(); String qlString= "select m,m.team from Member m where m.username=:username"; Tuple tuple1 = (Tuple) em.createQuery(qlString, Tuple.class).setParameter("username","member1") .getResultList(); boolean loaded = emf.getPersistenceUnitUtil().isLoaded(tuple.get(team)); assertThat(loaded).as("페치 조인 적용").isTrue(); } 위 코드는 위 코드에서 tuple 을 이용해서 ,member 와 team 을 함꼐 조회해 보았을 때 team 이 영속화 되는지 실험한 것입니다. 아래 코드입니다. queryFactory .select(member,team) .from(member) .where(member.username.eq("member1")) .fetchOne(); 원래 fetchJoin() 을 안붙여서 안될 것이라고 생각했습니다만 의외로 되가지고 뭐지 ? 했습니다. 원래 되는 것인가요?? 그러면 원래 이게 의미하는 JPQL 인 select member1, team from Member member1 where member1.username = ?1 를 직접 작성하면 @Query("select m, m.team from Member m wherer m.username=:username)뭐 이런식으로 해도 fetch join 이 된다는 얘기 아닌가요?
- 미해결실전! Querydsl
count 쿼리의 성능 관련 질문
페이징 부분에서 참고 부분에서 실무에서 페이징 쿼리를 작성시 데이터를 조회하는 쿼리는 여러 테이블을 조인해야 하지만 count 쿼리는 조인이 필요없는 경우도 있다 . 에 대한 구체적인 실무, 혹은 실제 예를 알고싶습니다,
- 미해결실전! Querydsl
QueryDsl 세팅 관련 질문입니다
clean delete file 이 찾아보니 clean task 실행시 QClass 삭제라고 나와있는데 스프링 부트 3.0 에서는 build->generated->source...annotationProcessor->... 에 QClass 가 생성되는데 왜 스프링 부트 3.0에서 위 clean 부분의 디렉토리가 필요한지 궁금합니다. 또한
- 미해결실전! Querydsl
JPA가 생성해주는 페이징 쿼리 질문 (fetch)
안녕하세요, 스프링부트3.x 와 H2(메모리 모드) 를 사용하고 있습니다.페이징 쿼리가 limit offset 이 아니라 offset fetch 쿼리가 나갑니다.@Test public void paging1() { List<Member> result = queryFactory .selectFrom(member) .orderBy(member.username.desc()) .offset(1) //0부터 시작(zero index) .limit(2) //최대 2건 조회 .fetch(); assertThat(result.size()).isEqualTo(2); }스프링부트2.x 로 테스트를 해보니 limit offset 으로 나가는데 혹시 버전이 올라가면서 최적화를 해주는걸까요?그렇다면 fetch 가 더 성능이 좋다는 이야기가 되는걸까요? 항상 감사합니다!
- 미해결실전! Querydsl
동적 order by..
쿼리dsl로 동적인 order by 정렬 처리하는거는 강의에서 안보여주시나요?...ㅠㅠ
- 미해결실전! Querydsl
세타조인 크로스조인
[질문 내용]세타조인과 크로스조인의 차이가 무엇인가요 ??
- 미해결실전! Querydsl
buildtool
springboot 3.2부터 build and run 두 가지를 전부 gradle로 해야 한다 하셨는데, 예전 강의에서는 intellij 로 선택하라 하셨던게 기억나서 여쭤봅니다. 어떤게 바뀌어서 gradle을 고르라 하셨나요?
- 미해결실전! Querydsl
여러 프로젝트에서 하나의 데이터베이스에 접근하는방법
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 강의 열심히 보고 있습니다. 감사합니다.다름이 아니라현재 여러프로젝트에서 하나의 데이터베이스에 접근하여crud 를 하고자 합니다. 1. 알아본결과 모든 프로젝트에서 똑같이 엔티티를 관리하면 된다고 하는거같은데.. 이게 맞을지요..2. 그리고 만약 맞다면 그럼 한곳에서 엔티티를 수정하게 되면 다른곳에서도 똑같이 다 수정해야하는게 아닌가 위 방법은 생각 해봐도 아닌거같아서.. 아마 따로 엔티티를 공용으로 관리하여 사용하는 방법이 있을거같은데 그런방법이 없을지요.. 주로 어떤방법을 사용하는지 알려주실수 있나요...
- 미해결실전! Querydsl
Q클래스 import 불가 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강사님이랑 서포터즈님들 강의 질문만으로도 바쁘신데 강의와 관련 없는 질문해서 죄송합니다.제가 지금 사이드 프로젝트를 진행중입니다. 그런데 querydsl을 사용하는 중 문제가 생겼습니다.혹시 제 코드를 구글 드라이브에 올리면 한번 봐주실 수 있나요? 만약 괜찮으시다면 url 올리면서 문제 상황 자세히 설명드리겠습니다.
- 미해결실전! Querydsl
JPAQueryFactory 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]김영한님 강의대로 spring 3.x.x버전으로 제대로 실행을 했는데 사진처럼 에러가 발생하네요... 인텔리제이에서 file->invalidate cache-> invalidate and restart했는데도 안되네요. 제 jdk는 17입니다. 추가로 저는 Q클래스가 build/calssess안에서 생성이되고 강의와 달리 generated에는 Q클래스가 아닌 QHello.java로 생성이됩니다.plugins {id 'java'id 'org.springframework.boot' version '3.2.2'id 'io.spring.dependency-management' version '1.1.4'}group = 'midas'version = '0.0.1-SNAPSHOT'java {sourceCompatibility = '17'}configurations {compileOnly {extendsFrom annotationProcessor}}repositories {mavenCentral()}dependencies {implementation 'org.springframework.boot:spring-boot-starter-data-jpa'implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'implementation 'org.springframework.boot:spring-boot-starter-security'implementation 'org.springframework.boot:spring-boot-starter-validation'implementation 'org.springframework.boot:spring-boot-starter-data-redis'implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'implementation 'org.springframework.boot:spring-boot-starter-mail'implementation 'io.jsonwebtoken:jjwt-api:0.12.5'implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'implementation 'org.jetbrains:annotations:24.0.0'implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"annotationProcessor "jakarta.annotation:jakarta.annotation-api"annotationProcessor "jakarta.persistence:jakarta.persistence-api"runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.5'runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.5'implementation 'org.springframework.boot:spring-boot-starter-web'compileOnly 'org.projectlombok:lombok'runtimeOnly 'com.mysql:mysql-connector-j'annotationProcessor 'org.projectlombok:lombok'testImplementation 'org.springframework.boot:spring-boot-starter-test'testImplementation 'org.springframework.security:spring-security-test'}tasks.named('test') {useJUnitPlatform()}clean {delete file('src/main/generated')}
- 미해결실전! Querydsl
Q클래스 안보여요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]plugins { id 'java' id 'org.springframework.boot' version '3.2.4' id 'io.spring.dependency-management' version '1.1.4'}group = 'com.example'version = '0.0.1-SNAPSHOT'java { sourceCompatibility = '17'}configurations { compileOnly { extendsFrom annotationProcessor}}repositories { mavenCentral()}dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' testImplementation 'org.projectlombok:lombok:1.18.26' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test'}tasks.named('test') { useJUnitPlatform()}clean { delete file('src/main/generated')}clean 이후 build를 누르니 사진처럼 main패키지까지만 나오네요
- 미해결실전! Querydsl
하나의 앤티티에 일대다 매핑을 2개 이상 일 때 한꺼번에 조회하면 데이터가 뻥튀기 됩니다.
안녕하세요.제가 겪고 있는 문제에 관해서 질문드리고 싶습니다.A 라는 앤티티가 B 와 C 를 패치 조인 전략을 사용해서 일대다 양방향을 하고 있는 상황입니다.query .selectFrom(A) .leftJoin(A.B, B).fetchJoin() .leftJoin(A.C, C).fetchJoin() .where(A.id.eq(AId)) .fetchOne()위와 같이 B 와 C 를 모두 패치 조인해서 한꺼번에 조회하게 되면 B 의 데이터가 C 의 개수 만큼 뻥튀기 되는 상황이 발생합니다.이를 어떻게 해결할 수 있는지 궁금합니다.저는 각각의 앤티티를 따로 따로 조회해서 A 에 할당해준다는 방법을 떠올렸는데 이렇게 하면 A 에 setter method 를 만들어야 해서 좋은 패턴이 아니라는 생각이 들었습니다.
- 미해결실전! Querydsl
jpa와 스프링DB는 별도인건가요 ?
현재 김영한 강사님의 김영한의 스프링 부트와 JPA 실무 완전 정복 로드맵 은 모두 수강한 상황입니다.별도로 스프링 완전 정복 로드맵을 따라가고 있는데, 로드맵상에 스프링db 강의 1,2편을 수강할지 말지 고민이 됩니다.일단 커리큘럼 상으로는 겹쳐지는 부분이 많아보여서요. 이에 대해 답변해주신다면 저에게 많은 도움이 될 거 같습니다.