묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! Querydsl
JOIN 2번 질문입니다..! (+is not a root path 에러)
개인 프로젝트중인데 도저히 해결을 못 하겠어서 질문 드립니다..@Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Cafe { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "cafe_id") private Long id; @NotNull @Column(unique = true) private String name; private String phoneNumber; private String bhours; private String address; private String domain; private String location; @OneToMany(mappedBy = "cafe") private List<Theme> themes = new ArrayList<>(); } @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Theme { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "theme_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "cafe_id") private Cafe cafe; private String name; private String genre; private String activity; private Integer difficult; private Integer limitTime; private Integer recommendStart; private Integer recommendEnd; @Column(length = 500) private String info; private String imageUrl; @OneToMany(mappedBy = "theme") private List<Review> reviews = new ArrayList<>(); //==연관관계 편의 메서드==// public void changeCafe(Cafe cafe) { this.cafe = cafe; cafe.getThemes().add(this); } } @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @EntityListeners(AuditingEntityListener.class) public class Review { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "review_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "theme_id") private Theme theme; private String nickname; private String password; private LocalDateTime playdate; private Double difficult; private String clear; private String time; private Integer hint; @Column(length = 700) private String content; @CreatedDate private LocalDateTime indate; private Double rating; } Entity는 위와 같고조회하려는 DTO는 다음과 같습니다.public class ThemeListDTO { private Long themeId; private String themeName; private String genre; private Integer recommendStart; private Integer recommendEnd; private String imageUrl; private String cafeName; private String location; private Double ratingAvg; @QueryProjection public ThemeListDTO(Long themeId, String themeName, String genre, Integer recommendStart, Integer recommendEnd, String imageUrl, String cafeName, String location, Double ratingAvg) { this.themeId = themeId; this.themeName = themeName; this.genre = genre; this.recommendStart = recommendStart; this.recommendEnd = recommendEnd; this.imageUrl = imageUrl; this.cafeName = cafeName; this.location = location; this.ratingAvg = ratingAvg; } } theme와 cafe를 join하여 해당 테마의 카페 정보를 가져오고,theme와 review를 join하여 해당 테마에 남겨진 리뷰들의 평균 rating 값을 가져오고 싶습니다.또한 리뷰점수로 desc 하여 테마 리스트를 정렬하고 싶습니다. 이를 위해서public class ThemeRepositoryCustomImpl implements ThemeRepositoryCustom { private final JPAQueryFactory queryFactory; public ThemeRepositoryCustomImpl(JPAQueryFactory queryFactory) { this.queryFactory = queryFactory; } @Override public Page<ThemeListDTO> themeAllListPage(Pageable pageable) { List<ThemeListDTO> themeListContent = queryFactory .select(new QThemeListDTO( theme.id, theme.name, theme.genre, theme.recommendStart, theme.recommendEnd, theme.imageUrl, cafe.name, cafe.location, review.rating.avg() )) .from(theme) .leftJoin(theme.cafe, cafe) .leftJoin(theme, review.theme) .orderBy(review.rating.avg().desc()) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .fetch(); JPAQuery<Long> countQuery = queryFactory .select(theme.count()) .from(theme); return PageableExecutionUtils.getPage(themeListContent, pageable, countQuery::fetchOne); } } 위와 같이 코드를 작성했습니다. 하지만 이를 실행했을 경우ERROR 8584 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.dao.InvalidDataAccessApiUsageException: review.theme is not a root path; nested exception is java.lang.IllegalArgumentException: review.theme is not a root path] with root cause java.lang.IllegalArgumentException: review.theme is not a root path이런 에러 문구가 뜨는데 어떻게 바꾸는 게 맞는 것인가요 ?해당 에러 문구를 구글링해봐도 답을 잘 모르겠어서 질문 드립니다 ..,, 해당 에러 문구가 무슨 뜻인지, 어떻게 해결하면 좋을지join 두번 했을 때 이렇게 하는 게 맞는 것인지리뷰 점수대로 desc 테마 리스트를 정렬하려고 하는데 orderBy에 저렇게 작성하는것이 맞을지에 대하여 답변해주시면 정말 감사하겠습니다 ..
-
해결됨유니티 머신러닝 에이전트 완전정복 (기초편)
curriculum learning
안녕하세요, 강의 잘 보고 있습니다.다름이 아니라, 현재 교재 개정 이전판에는 커리큘럼 러닝에 대한 부분이 함께 소개되어있었는데 현재 교재나 강의에는 이 부분이 다뤄지지 않는 것 같아 질문 드립니다. 혹시 지금은 커리큘럼 러닝이 유니티 상에서 불가능한가요? 지금도 활용할 수 있는 방법이 있는지 궁금합니다. 감사합니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
토큰이 나와있는 수업이 어디 부분에 나와있나요?
제가 놓쳤을수도 있습니다. Math학습 부분에서 뭔가 비어 있는 듯한 느낌이 있었는데 오늘 보니 Token에 관해 수업을 하셨다했는데, 어느 강의부분인가요? 함수 작성 방법 수업을 듣는데 hex에 관해서도 설명하셨다는데 어디있는지 모르겠습니다.
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
소개팅앱 강의; 중 에러 확인 부탁..
개복치님.. 소개팅 앱 강의 중 에러가 발생하여 솔루션좀 부탁드립니다.AndroidManifest.xml 에서 packname 자체가 없는데 이걸 어떻게 복사해서 firebase에 등록하지요.. join activity는 있던데.. join acitivity packname으로 그냥복사해서 firebase에 등록했더니 강의 도중 실행시 아래 와 같은 에러가 계속나네요..
-
미해결[리뉴얼] 타입스크립트 올인원 : Part1. 기본 문법편
Omit, Exclude, Extract 타입 분석 강의에서 keyof any에 대한 의문
안녕하세요.Omit을 직접 구현하는 부분에서 궁금한 점이 있어 올립니다.type O<T, S extends keyof any> = Pick<T, Exclude<keyof T, S>>;위 처럼 keyof any 부분이 있을 경우 S로 들어올 수 있는 값이 string | number | symbol로 제한되면서 의미가 있다고 해주셨는데요.type O<T, S extends keyof T> = Pick<T, Exclude<keyof T, S>>;어짜피 S는 제거해야 되는 속성이므로 위 처럼 T의 key 중 하나라고 명시하는 것이 더 정확한 타입 정의가 아닌가 해서 질문드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
unique 교안 s 벡터 erase 질문
vector<int> s {4, 3, 3, 5, 1, 2, 3};s.erase(unique(s.begin(),s.end()),s.end());for(int i : s) cout << i << " ";의 결과가4,3,5,1,2(,2,3 제거) 이렇게 되어야 하지 않나요?왜 4,3,5,1,2,3으로 나오는 건지 잘 모르겠습니다.
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
새 프로젝트 생성 시 layout 폴더가 없습니다
안녕하세요, 안드로이드 스튜디오 가장 최신 버전 플라밍고 버전을 설치하였는데, new project 만들면 강의처럼 layout 폴더가 나와야 하는데 나오지 않습니다.
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
앱 실행 질문입니다.
안녕하세요, 미세먼지 앱을 따라서 만들어보고 있습니다. 전부 다 문제없이 따라했고 안드로이드스튜디오에서 Emulator 실행시 수업과 완전 동일하게 실행이 되었습니다.한 번 폰으로 실행해보고 싶어서 apk 파일로 추출해서 실행해보는데, 계속 로딩인디케이터만 돌아가고 그 다음 페이지로 뜨지 않습니다. 분명 맨 마지막 수업인 No Element 버그 수정까지 따라했습니다. 무엇이 문제인지 잘 모르겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
javaclass run 안됨
test를 junit의로 run 한 후에 다시 javaclass를 run할려고합니다. 근데 계속 javaclass 대신 test를 junit으로 run 하는데 이 환경을 어떻게 바꾸죠?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
섹션1 캐릭터 컨트롤러 설정에서 Input Mapping Context 부분 문의 드립니다.
강의대로 따라하며 진행했을 때 캐릭터가 움직이지 않는 문제가 있었습니다.이것저것 시도해 보다가 아래와 같이 Input Mapping Context를 설정하고 실행하니 캐릭터가 정상적으로 움직이고 V키를 눌렀을 때 전환되는 것을 확인 하였습니다.강의에서는 Input Mapping Context를 설정하지 않고도 잘 되던데 혹시 어느 부분을 확인해 보아야 할까요?
-
해결됨Redux vs MobX (둘 다 배우자!)
객체 동적 다이나믹 속성?? 질문
[logIn.pending](state, action) { state.isLoggingIn = true; }이 문법 정확한 명칭이 뭔가요? 구글링 하고 싶은데 원하는 결과가 안나오네요
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
재귀를 이용한 순열 코드 질문
재귀를 이용한 순열 코드를 학습하면서 이와 관련된 백준 문제를 풀어보려고 하였습니다!백준 15649 N과 M(1) 문제 같은 경우 순열을 출력하는 문제여서 학습한 코드를 사용하면가능할 것이라고 생각했습니다. 그런데 교안에 있는 코드는 순열의 오름차순이 보장이안되는 것 같습니다. 교안에 있는 코드를 최대한 활용해서 백준 15649번 문제를 풀고 싶은데, 순서가 오름차순이 되도록 순열을 출력하려면 교안의 코드를 어떻게 수정해야 할지 모르겠습니다!https://www.acmicpc.net/problem/15649
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
console 출력
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]해당 코드를 따라하다보니 이런 로그만 표시됩니다. localhost서버도 잘 켜져있는데 404에러가 나와요 resource가 없어서 404 에러가 뜨는건 알겠는데 선생님은 바로 console에 출력이 되시네요ㅠㅠ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 결측치 처리 기준
작업형2 모의문제2에서결측치를 컬럼을 삭제하는데 결측치 컬럼을 삭제하는 기준이 있을까요?언제 결측치를 채워야하고 삭제해야하는지 잘 모르겠습니다.
-
미해결
C++ 클래스 인스턴스의 지역변수 초기화 오류 & C4996 에러
#include<iostream> #include<cstring> #define LENGTH 40 using std::cout; using std::endl; class Person { char* name; int age; public: void SetName(const char* str) { // 설정자는 잘못된 값이 설정되는 것을 방지하기위해, 그 값을 먼저 검사한다. if (!str) return; // 문자열을 멤버 변수 name에 복사 strncpy(name, str, LENGTH); } void SetAge(int n) { age = n < 0 ? 0 : n; } inline char* GetName(const char* str) { return name; } inline int GetAge(int n) { return age; } void Print() { cout << "name: " << name << ", age: " << age << endl; } }; int main() { Person jackson; Person brown; Person dean; // 각 객체의 설정자로 멤버 변수에 값을 설정 jackson.SetName("Michael Jackson"); jackson.SetAge(29); brown.SetName("Charles Brown"); brown.SetAge(40); dean.SetName("James Dean"); dean.SetAge(20); // print out jackson.Print(); brown.Print(); dean.Print(); return 0; } main함수 내에서 Person클래스의 객체 인스턴스들을 만드려는데, 자꾸 저 부분에서 지역변수가 초기화되지 않았다고 하네요... 설정자를 통해서 인스턴스 내 멤버 변수에 값을 대입했는데도 불구하고 말이죠. 정확히 무슨 문제인지 모르겠습니다.2번째는 C4996코드 오류인데요. strncpy함수가 위험성이 있으니 strncpy_s함수를 대신해서 사용하라고 하는데, 보안의 위험성을 떠나서 strncpy함수를 사용하면 오류가 나는 이유가 있나요
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헙 요청합니다
깃헙 요청합니다인프런 아이디 : gogyuja@gmail.com인프런 이메일 : gogyuja@gmiail.com 깃헙 아이디 : gogyuja@gmail.com깃헙 Username : good-game-yo
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
섹션3 - MemoryMemberRepository.java
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]Cannot resolve symbol, cannot resolve method values() 등 13가지 에러가 뜨는데 어떤 에러 일까요..? package hello.hellospring.repository; import hello.hellospring.domain.Member; public class MemoryMemberRepository implements MemberRepository{ private static Map<Long, Member> store = new Hashmap<> (); private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++sequence); store.put(member.getId(), member); return member; } @Override public Optional<Member> findById(Long id) { return Optional.ofNullable(store.get(id)); //null 처리 } @Override public Optional<Member> findbyName(String name) { store.values().stream() //루프를 다 돌면서 하나 찾아지면 반환 .filter(member -> member.getName().equals(name)) .findAny(); } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); } }
-
미해결[개념반]배워서 바로 쓰는 SQL 쿼리
리밋 입력 시 에러
안녕하세요 현재 수강중인 학생입니다.연습문제중에 limit만 입력해서 런 에스큐엘하면 Erro in SQL:Syntax error in From clause. 라는 에러가 계속 발생되서 한번도 리밋 조건을확인해볼수가없는데 제가 무엇을 잘못하고있는것인지알 수 있을까요? 감사합니다. 아래는 제가 입력한 조건입니다. SELECT * FROM Customers limit 5 ;
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
Alt + Enter를 써도 Import class가 뜨지않아요
User자체를 인식을 못하는거같긴해요왜 Import class가 안뜨는건가요??
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
원모양 크기가 너무 작은 것 같습니다
어떤 설정을 해야 될까요?