[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요, 질문이 생겨 여쭤봅니다. 외래키가 있는 곳을 연관관계의 주인으로 설정하라 하셨는데, 만약 외래키가 없는 두 엔티티가 1대1 관계라면 이때는 랜덤으로 연관관계의 주인을 설정하면 되는 것일까요 ?
안녕하세요. 컬렉션값 명시적 조인에 대해서 select t.members.username from Team t 는 실패하고, select m.username from Team t join t.members m 은 성공한다고 하셨는데, 여기서 해당 jpql을 실행했을때 변환되는 SQL에 대해서 이해가 가지않는 부분이 있어서 구글링을 통해 찾아보면서 아래와 같이 정리해봤는데, 이렇게 이해하는게 맞을까요?? select t.members.username from Team t 형태로 하면 안된다. 대신에 select m.username from Team join t.members m 형태로 해야한다. select m.username from Team join t.members m를 실행하면 SELECT m.username FROM team t JOIN member m ON t.id = m.team _id 쿼리로 변환되서 실행된다. 여기서, 1.t.members가 member로 변환되는 이유는 컬렉션 필드 members의 제네릭 타입이 Member이기 때문이다. t.members는 Team 객체가 갖는 List<Member> 컬렉션이다. 이 컬렉션은 결국 Member 엔티티에 해당하는 테이블 , 즉 member 테이블의 여러 행들을 의미한다. 따라서 JPA는 join t.members를 Member 엔티티 대상으로 join하는것으로 해석하고, SQL에서는 member 테이블로 변환된다. 2.ON t.id = m.team _id가 추가되는 이유는 Team의 members와 Member의 team이 연관관계인 상태이기 때문이다. 3.from 뒤에는 엔티티객체만 적을수 있는데, join 뒤에는 엔티티객체뿐만 아니라 엔티티객체의 연관필드도 적을수 있다. 하지만 이때는 반드시 경로표현식 형태인 .을 통해 나타내야한다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 제가 부트캠프에서 프로젝트를 진행할 때 테스트 코드를 짜긴 했었는데 거의 지식 없이 짰던지라 controller랑 service만 단위 테스트로 짰고 통합 테스트는 안 했습니다. 단위 테스트는 class 단위 어노테이션에 SpringBootTest를 안 쓰는게 맞는건가요? 제가 그렇게 했었거든요. @SpringBootTest는 통합 테스트일 때만 쓰는 건지, 어떤 경우에 쓰는 어노테이션인 지 궁금합니다.
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] AnimalHospitalMainV0의 개 타입 반환 주석 밑에 dogHospital .set( dog );을 또 하는 이유가 있나요? 개 병원 주석 밑에 dogHospital .set( dog );가 이미 있는데 중복이 아닌지..??
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다! [코드팩토리 디스코드] https://bit.ly/3HzRzUM - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. webview_flutter 패키지의 다큐멘테이션이 업데이트된건지 android 폴더 속 파일의 내용을 바꿔야하는 부분이 사라졌습니다. 그래서 일단 그 부분은 건드리지않고 그대로 강의를 따라했는데요. 에뮬레이터에서 돌리니까 오류가 뜨고, 콘솔에서 해결책으로 build.gradle파일의 android { ndkVersion = "27.0.12077973" } 이렇게 바꾸래서 바꿨고 결국에 에뮬레이터에서 정상적으로 작동했습니다. 물론 이번 강의에서는 이 부분만 빼놓고 나머지는 잘 이해하고 구현해보고했습니다만, 앞으로 저 혼자 개발할 때 이런 일이 발생하면 (다큐멘테이션에선 없는 내용으로 오류가 발생하고, 콘솔에서 해결책을 제시해줬지만, 정확히 내가 뭐가 문제이고 왜 해결되었는지 모르는 상황인데 어떻게든 해결은 된 상황, 뭐가 문제인지 모르는 상황이라 언제든 다시 발생할 수 있음) 어떻게 해야하는지 좀 난감하네요. 실무에서는 어떤 식으로 대처하는지 궁금합니다. 콘솔 메시지를 분석하고 공부하는 게 최선일까요?
예제에서는 equals 함수를 새로 만들어서 person1과 person2를 비교하는 상황이라 true가 나오는 것으로 이해했습니다. 그럼 equals 함수를 따로 만들지 않은 상태에서 person1과 person2를 equals로 비교하면 그 경우에는 true가 나오나요 false가 나오나요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/ 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/ 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/ [질문 내용] 여기에 질문 내용을 남겨주세요. 질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/ 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/ 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/ 프로젝트 생성의 13:24의 실행이 되지 않습니다. Cause: class java.util.concurrent.ExecutionException cannot be cast to class java.lang.RuntimeException (java.util.concurrent.ExecutionException and java.lang.RuntimeException are in module java.base of loader 'bootstrap') java.lang.IllegalArgumentException: Could not create problems-report directory '/build/reports/problems' * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org . Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.13/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 55ms 1 actionable task: 1 executed 두가지의 오류가 뜨는데 어떻게 해결해야할까요?