월 17,600원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결실전! 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편을 수강할지 말지 고민이 됩니다.일단 커리큘럼 상으로는 겹쳐지는 부분이 많아보여서요. 이에 대해 답변해주신다면 저에게 많은 도움이 될 거 같습니다.
- 미해결실전! Querydsl
QuerydslApplicationTests 오류 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. QuerydslApplicationTests 실행시 아래와 같은 에러가 발생합니다. HELLO_SEQ가 없다는 오류인것 같은데요H2 DB에 이걸 만들어야 한다는 의미인가요?강의 내용에는 없는 것 같아서 질문드립니다. 확인 부탁드립니다.감사합니다.
- 해결됨실전! Querydsl
Test에서 QHello.java를 못찾아요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 있는데 다 해봐도 안돼요3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네[질문 내용] springboot 3버전으로 해결 방법을 다 써봤는데 안되어서 문의드립니다.setting -> Annotaion Processorsbuild.gradleplugins { id 'java' id 'org.springframework.boot' version '3.2.4' id 'io.spring.dependency-management' version '1.1.4' } group = 'study' 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.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' 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" } tasks.named('test') { useJUnitPlatform() } clean { delete file('src/main/generated') } 폴더 확인 bbuild.gradle 설정도 잘해서 build 폴더에 잘 생겼는데 Test에서 import를 못해요
- 해결됨실전! Querydsl
수업들으며 곰곰히 생각하다가 제가 생각한게 맞는지 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]동적쿼리 - builder 사용편 강의를 들으며return query .select(new QMemberTeamDto( member.id.as("memberId"), member.username, member.age, member.team.id.as("teamId"), team.name.as("teamName"))) .from(member) .leftJoin(member.team, team) .where(builder) .fetch();이 쿼리를 따라 치고 생각해보았습니다.원래 jpa라면 member객체를 조회해와서 member.getTeam()이나 팀 객체에 액세스 할때 지연로딩이 일어난다고 학습하였습니다.위 쿼리에서 fetch 조인을 사용하지 않았는데 어떻게 쿼리가 한방에 조회가 됐나 갑자기 의문이 들었습니다.제가 도출해낸 결과는 반환값이 dto이고 team 객체와 join해서 필요한 값만(team 포함) select 하기때문에 teamId, teamName까지 한방쿼리로 조회가 되는건가요?
- 미해결실전! Querydsl
토이 프로젝트를 진행하다 궁금한게 생겨서 질문드립니다
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]Projection 을 사용해서 2~3번의 query 를 통해 필요한 데이터만 받아오는것과 fetch join 을 통해서 한번에 3개의 entity 전체를 받아 오는 방법중 어떤방식이 적절한지 고민되서 질문드립니다. fetch join 을 통해 쓰지않는 데이터를 받아오더라도 query가 여러번 나가는거보다 성능적으로 좋은가요?
- 미해결실전! Querydsl
MemberJpaRepositoryTest 클래스에서 MemberJpaRepository 클래스 주입 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]MemberJPARepository 클래스를 build/generated 패키지에 생성하고 테스트 클래스의 테스트를 돌리게 되면 @Autowired MemberJpaRepository memberJpaRepository; ^ symbol: class MemberJpaRepository location: class MemberJpaRepositoryTest이렇게 주입 관련한 에러가 뜹니다. 왜 이런건가요?
- 해결됨실전! Querydsl
3.2버전 gradle 설정에 대한 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.이게 현재 프로젝트 이고plugins { id 'java' id 'org.springframework.boot' version '3.2.3' id 'io.spring.dependency-management' version '1.1.4' id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10' } group = 'study' 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' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'com.mysql:mysql-connector-j' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' //test 롬복 사용 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' //Querydsl 추가 implementation 'com.querydsl:querydsl-jpa:5.1.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:5.1.0:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } tasks.named('test') { useJUnitPlatform() } clean { delete file('src/main/generated') } //querydsl 추가 시작 def querydslDir = file('build/generated/querydsl') querydsl { jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir querydslDir } configurations { querydsl.extendsFrom compileClasspath } compileQuerydsl { options.annotationProcessorPath = configurations.querydsl } 현재 gradle설정인데 Querydsl 설정과 검증 부분에서 막혔어요클린해서 q파일 지우고 테스트 코드 런하면 아래 에러가 나타나고error: Attempt to recreate a file for type study.querydsl.entity.QHello 이후에 q파일이 생성 된 후에는 error: Could not find class file for 'study.querydsl.entity.Hello'. 에러가 반복되네요.. https://www.inflearn.com/questions/1086099 다른분들 설정파일 따라해도 안됩니다..