30%
61,600원
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 해결됨실전! Querydsl
BooleanBuilder 관련 질문이 있습니다..!
안녕하세요 강사님~ 질문 답변글들 정독하다가 강사님이 답변달아주신 답변에 대해서 궁금한게 생겨서 질문 남겨봅니다..! 해당 게시글에 질문 내용 답글 달아놨는데 혹시 확인 가능하실까요??! 감사합니다..! https://www.inflearn.com/questions/94056
- 미해결실전! Querydsl
tuple 출력에 대해서 질문드립니다.
해당 코드로 테스트 결과를 돌렸을 때 출력문이 다음과 같이 나옵니다. 테스트 결과는 동일한 것 같은데 선생님의 출력처럼 나오게 하려면 어떻게 해야되는 건지 궁금합니다.
- 미해결실전! Querydsl
jpa에서 Inline View를 포함한 구문은 지원하지 않는다고하셧는데요 이 말이 의미하는게 정확히 무엇인가요?
Inline View를 포함한 구문은 지원하지 않는 다고 하셨습니다. 이말은 다음과 같은 결론을 도출 할 수 있는건가요? 'Inline View 를 포함한 sql문의 결과와 동일한 결과를 영속성 컨텍스트에서 가져올 수 없다' 즉, 부득이하게 native query를 사용한다면 이는 영속성 컨텍스트의 장점 중에 하나인 1차 캐시에서 빠르게 가져오는 효과를 볼 수 없다. 저는 이렇게 이해 하였습니다. 그런데 인터넷에서 검색을 해보니 어떤 블로그에 다음과 같은 문장이 있었습니다. 그렇다면 JPA가 지원하는 네이티브 SQL과 JDBC API를 직접 사용하는 것에는 어떤 차이가 있냐? 그것은 바로 네이트브 쿼리는 엔티티를 조회할 수 있고 JPA가 지원하는 영속성 컨텍스트의 기능을 그대로 사용할 수 있다는 것이다! 정확히 블로그 내용이 맞는거지는 모르겠습니다만 위 블로그 내용이 맞다면 왜 Inline View를 포함한 구문을 지원하지 않는건가요? 너무 헷갈리고 어떤것이 정답인지 궁금합니다 도와주세요 김영한 선생님..
- 해결됨실전! Querydsl
개인 프로젝트 시작을 어떻게 하면 좋을까요?
안녕하세요! 스프링 부트와 JPA 실무 완전 정복 로드맵 강의를 완강한 학생입니다. 배운 내용을 바탕으로 토이 프로젝트를 시작하려고 하는데, 개발 경험이 없어서 어떻게 시작해야 할 지 감이 안잡히네요 ㅠㅠ 조언을 구하고 싶어서 질문을 드립니다... 프로젝트 목적은 취업 포트폴리오로 활용하는 것입니다. 1. 클론 코딩 vs 직접 만들기 1) 클론코딩을 하면 어떻게 설계하고 어떤 것들을 구현해야 할 지 쉽게 파악할 수 있을 것 같아서 좋은 것 같은데, 한편으로는 이미 누군가가 구현한 것을 따라한 수준 밖에 안될 것 같아서 취업 포트폴리오로 활용할 수 있을까 걱정이 되네요... 2) 반면에 직접 만들어보면 학습, 설계 ,구현 등 모든 것을 "스스로" 했다는 것을 어필할 수 있을 것 같지만, 퀄리티가 많이 떨어질 것 같아서 고민입니다 2. 프론트 부분 처리 (API vs thymeleaf로 화면 출력) 1) API로 구현하면 아무래도 화면 처리에 대한 부담이 줄어들어서 백엔드 구현에 더 집중할 수 있을 것 같습니다. 하지만 취업 포트폴리오 목적으로 하는 것이니 만큼 화면까지 엮어서 구현을 해야 좀 더 있어보일 것 같은데, API만 구현하면 좀 부족해보이지 않을까 하는 걱정이 됩니다. 2) thymeleaf를 이용해서 html, css까지 엮어서 화면 출력을 하면 API와는 반대로 좀 더 있어보이는 포트폴리오를 만들 수 있겠지만, 백엔드 부분의 완성도가 떨어지지 않을까 하는 걱정이 됩니다. 아니면 html 무료 템플릿에 thymeleaf만 적용해서 만들어도 괜찮을까요? 물론 정해진 답은 없겠지만, 각각의 선택지에 대해서 어떠한 장단점이 있는지, 어떠한 점들을 고려해야 하는지 알고 싶습니다. 개발 경험이 없어서 무엇을 여쭤봐야 할 지도 모르겠네요 ㅎㅎ.. 강의를 들으면서 정말 많은 것들을 배웠습니다! 항상 친절하고 자세한 설명 감사합니다^^
- 미해결실전! Querydsl
좋은강의감사합니다 ! 질문이있습니다.
querydsl의 벌크성쿼리는 스프링데이터에서의 @Modifying(clearAutomatically = true) 와 같은 기능은 없는것인가요?
- 미해결실전! Querydsl
계산성 결과물을 DB에 저장하는 것에 대해서 어떤 방법이 더 효율적인가요
안녕하세요, 강의 잘 보고있습니다. 평소에 가지고 있던 궁금증인데 age를 업데이트하는 부분을 보고 문득 떠올라 질문남깁니다. 기존 레거시 테이블들을 보면 이미 레코드에 포함하고 있는 계산성 데이터들을 많이 저장하고 있는 테이블들을 많이 보았습니다. 해당 강의 차수에서 말하는 age나 또는 팀-멤버간(fk) 조인되어 있는 테이블에서 팀 테이블의 전체 회원 수 같은 칼럼들이요. 저는 기본적으로 이런 데이터들을 테이블에 넣는것을 반대하고있습니다. 나이를 넣는 것 보다 생년월일을 넣어야되고 팀의 전체 회원수가 필요하면 필요 시 쿼리에서 count를 하거나 애플리케이션에서 항상 동적으로 구하는 방식을요. 제 경험상으로 이러한 계산성 데이터를 넣어버리면 변경점이 계속 생기는 것 같습니다. 예를들어 1년이 지날 경우 벌크로 나이를 +1씩 더해야 되는 상황들이요. 또한 팀 멤버가 추가될경우 실수로 팀 테이블의 총원 테이블을 업데이트 하지 않는 경우도 생길수도 있을 것 같습니다. 하지만 단점으로는 데이터 용량을 많이 조회할 경우에 계산을 해야하는 시간등도 있을 것 같습니다. 대용량 서비스 관점에서 위 의견에 대해 어떻게 생각하시는지, 어떤 방법을 선호하시는지, 제가 놓친 부분은 없는지 궁금합니다. 감사합니다.
- 미해결실전! Querydsl
선생님 searchTest 돌리는데 에러 질문 있습니다
선생님께서 하신 코드 그대로 해봤는데요, 다음과 같은 에러가 발생했습니다. 제가 볼때는 큰 문제는 없어보이는데 다른 엘레멘트가 기대되지 않았다고 뜨는 이 부분을 어떻게 해결해야 될지 모르겠습니다 ㅠㅠ 선생님의 가르침이 필요합니다.
- 미해결실전! Querydsl
인텔리제이 2019년 버젼 사용하시는 분들 중에 getId 인식이 안되는 분들
getId 인식이 안되고 추후에 진행하는 강의에서도 getMember가 인식이 안되는 같은 오류가 발생하는 문제가 발생하여 invalid cache /restart & rebuild 해도 안되서 2020.02년 버젼을 사용해봤더니 잘 되는 현상이 발생했습니다. 윈도우 컴퓨터 3대를 가지고 실험한거라 2019년 버전은 get 메소드를 직접 넣어줘야 인식이 되는 장애가 발생했습니다. 이를 김영한 선생님에게 여쭤보니 버젼문제가 있다고 판별이 났습니다. 선생님이 말씀하시기를, jpa 최신 버젼 업데이트가 안되서 발생된것 같으니 아무래도 이번 querydsl 강의를 들을 때는 최신버젼의 인텔리제이 버젼을 설치해야 할 수 있을 것 같다고 하셨습니다 안되시는 분들은 이를 참고하셔서 인텔리제이 최신버젼으로 업데이트 하셔야 될 것 같습니다
- 미해결실전! Querydsl
mysql 하시는 분들은 function 설정(질문 아님)
function('regexp_replace' ~~~ 라고 적어주셔야 되고 application.yml 파일에서 dialect : org.hibernate.dialect.MySQL8Dialect 라고 적어주셔야 합니다
- 미해결실전! Querydsl
연관관계 없는 필드 조인시 타입이 다를때 작성 방법
안녕하세요~ 늘 많은 도움을 받고 있는 수강생 입니다. 개발 하던중 코드표현이 잘 되질 않아 문의 드립니다. 연관 관계가 없는 두개의 필드의 조인시에 한쪽의 엔티는 enum 으로 작성되었고 다른 한쪽은 String 으로 되어 있습니다. 주요테이블과 코드정의 테이블을 조인하여 코드명칭을 출력하는 기능인데 코드로 표현이 잘 안되네요. 방법이 있을까요? 도움 부탁드립니다. 감사합니다. 쿼리 dsl로 컴파일 하니 주요 테이블은 : enumpath, 코드 테이블은 stringpath 로 생성되네요.
- 미해결실전! Querydsl
factory 에 반환값을 담는 객체가 없어요
안녕하세요~ 기존에 작업하시던 분들이 아래와 같이 반환값을 담는 객체가 없게끔 사용하시던데요 이때는 영속성 객체에만 담겨지게 되는것인가요? ex) factory.selectFrom(qSchool).leftJoin(qSchool.students, qStudent).fetch(); // 반환값을 담는 컨테이너가 없음 감사합니다.
- 해결됨실전! Querydsl
Tuple 이라는 객체 질문입니다
QueryDsl 써보셨던 분들이 'Tuple 을 사용하면 영속성컨텍스트의 캐싱을 타지 않는다' 라고 하시는데 매뉴얼을 봐도 해당 내용을 찾을수가 없어서요 Tuple 은 multi-projection 을 위한 컨테이너일 뿐인것 같고 JPA 캐싱 동작과는 관계없는것 같은데.. 어떤게 맞나요? 감사합니다.
- 해결됨실전! Querydsl
select 박스로 검색 기능 질문입니다
활용1편 프로젝트에 Querydsl 활용해서 검색기능을 추가하고있습니다.몇번의 고비가 있었지만 강의를 토대로 기능이 잘 구현됬습니다. 감사합니다~(인프런 솔로몬상 축하드립니다 ㅎㅎ) -------------------------------- 이제 위처럼 select박스로 검색 조건을 선택하고검색어를 입력받는 기능을 구현하고 싶습니다.제가 생각해낸 방법은 option태그의 id값을 서버에서 받고 컨트롤러에서 어떤 option태그가 선택됬는지 식별하고선택한 조건에 맞는 Querydsl 메서드들을 호출하는겁니다.1. 위 생각대로 구현이 가능할까요? 2. 실무에서는 보통 어떤 방식으로 구현하는지 궁금합니다.
- 미해결실전! Querydsl
JPAQueryFactory Config 등록 시 멀티 데이터소스는 어떻게 처리하나요 ??
안녕하세요. 강사님. 아래 처럼 config 로 JPAQueryFactory 를 bean 으로 등록하는데 데이터 소스가 여러개 일 때는 어떻게 처리하나요 ? @Configurationpublic class QuerydslConfig { @PersistenceContext private EntityManager entityManager; @Bean public JPAQueryFactory jpaQueryFactory() { return new JPAQueryFactory(entityManager); }} second 데이터 소스를 사용하는 repository 쪽에 아래와 같이 선언해서 사용은 하긴하는데 repository 마다 아래와 같이 해줘야 해서 불편한데.. 편하게 하는 방법 없을까요 ?? 그리고 아래와 같이하면 autocommit 이나 rollback 등이 second datasource 가 아닌 primary datasource 를 사용하더라고요. @Repositorypublic class SecondDataSourceRepository extends QuerydslRepositorySupport { public SecondDataSourceRepository() { super(SecondDataSourceRepository.class); } @Override @PersistenceContext(unitName = "secondEntityManager") public void setEntityManager(EntityManager entityManager) { super.setEntityManager(entityManager); this.jpaQueryFactory = new JPAQueryFactory(entityManager); } private JPAQueryFactory jpaQueryFactory;}
- 미해결실전! Querydsl
공용DB 데이터 가져올때 질문
안녕하세요. Micro Service 상황에서 공용DB에 접근할때 Entity를 꼭 만들어줘야 하나요? 지금까지의 강의에선 entity를 만듬과 동시에(ddl-auto : create) 실제 DB 테이블과 필드들을 만들어줬기 때문에 기존에 생성되어 있는 DB에 접근할때는 어떻게 해야하는지 모르겠습니다. spring data jpa와 querydsl을 쓰기 위해선 기존에 데이터가 존재하고 사용되는 데이터베이스라고 하더라도 필요한 모든 entity를 만들어 join도 하고 값을 가져와야 되는것이죠?(ddl-auto : create) 이럴경우 entity의 필드를 정확하게 형식도 맞춰서 만들어야 하고 jpa를 쓰지 않았을때보다 공수가 더 많이 드는것 같습니다. 쿼리문 하나면 되니깐요. 올한해 고생많으셨고 감사합니다!!
- 미해결실전! Querydsl
mysql 로 설정하시는 분들을 위한 팁(질문 관련 없음)
mysql 같은 경우 앞서 applicationTest 적고 ( contextload) build하면 에러가 날 수 있습니다. build 시 contextload 있는 부분 지우고 build 하셔야 에러가 안납니다,
- 미해결실전! Querydsl
안녕하세요 선생님~ 빌드 에러 질문입니다
gradle 설정 이하로는 짤려서 안나오지만 선생님 코드를 복붙해서 붙여넣었습니다. 저는 mysql 을 사용하고 있어서 설정했구요,, 근데 빌드 시에 왜 이런 오류가 나는지 모르겠습니다,, Invalid Cache/restart 하고 build 처리까지 해줬습니다,, 선생님의 도움이 필요합니다
- 미해결실전! Querydsl
아키텍처적으로 DTO를 깔끔하기 가져가는 경우
안녕하세요! DTO에서 @QueryProjection을 사용하는 부분에서 DTO를 깔끔하게 가져가고 싶다는 말씀을 하셨습니다. querydsl에 의존성을 줄여 유지보수성을 높이는 경우라고 이해를 했습니다! 실제로 이렇게 가져가야하는 경우 언제인지 예시를 들어주실 수 있을까요? 감사합니다 :)
- 해결됨실전! Querydsl
읽기전용 entity 만들기
안녕하세요. 다른 사람이 만든 DB의 데이터를 가져와서 가공하여 제공하는 API를 만들려고 합니다. spring data jpa + querydsl 환경이고 읽기전용 entity를 만들려고 합니다. 기본편도 들었지만 entity를 만들면서 db도 생성되었기에 읽기전용 entity를 어떻게 만드는지 혹여나 컬럼 혹은 데이터 수정이 되지 않을지, entity를 만들때 모든 컬럼을 다 정의해야되는지 등의 개념을 파악하기가 힘듭니다. 검색해봐도 잘 나오지 않네요. 혹시 답변 가능하실까요? 참고할만한 사이트 혹은 개념이라도 알려주시면 찾아서 해보겠습니다. 감사합니다.
- 미해결실전! Querydsl
연관관계 메소드 질문
안녕하세요 강사님. 기본강의에서도 연관관계 메소드를 공부하여 알고 있었습니다. 양방향 연관관계에서 주인이 되는 쪽을 수정하면 주인이 아닌쪽에서도 자동으로 수정이 되지만 객체의 개념으로 접근하기 위해 양쪽을 모두 수정해주는 연관관계 메소드가 필요한것인가요? 주인이 되는 쪽만 잘 수정해주면 사실상 연관관계 메소드가 필요 없는 것이지요? 그렇다면 changeTeam 연관관계 메소드를 이용해서 팀을 바꾸었을때 바뀐 팀의 멤버를 추가하는 것이 맞다면 반대로 바뀌기 전의 팀에서도 멤버를 제거해야되는것이 아닌가요? 예를 들어서 팀1 -> 멤버1 팀2 -> 멤버2 에서 멤버1을 팀2로 옮길시 연관관계 메소드는 add만 해주시기때문에 팀1 -> 멤버1 팀2 -> 멤버2, 멤버1 로 되어 제거를 해주어야 한다고 생각합니다. 하지만 테스트 결과 주인이 되는 쪽을 수정하니 자동으로 멤버1이 제거가 되더군요. 이 또한 객체의 개념을 살리기 위해 제거가 자동으로 되지만 제거가 되는 remove()를 추가해줘야 할까요?