Given the CITY and COUNTRY tables, query the names of all cities where the CONTINENT is 'Africa'. Note: CITY.CountryCode and COUNTRY.Code are matching key columns. => continent 가 africa인 값만 출력하면 되는 것이기 때문에 country를 첫번째 테이블로 놓고 LEFT JOIN 처리하려 했습니다 SELECT city.name FROM country LEFT JOIN city ON country.code = city.countrycode WHERE country.continent = 'africa' 이렇게 작성했더니 정답 내용은 모두 추출되었지만 다량의 NULL값 포함으로 오답 처리 되었습니다. city 테이블에 없는 africa continent값들로 인해 NULL값이 나옴은 인지했는데, 혹시 NULL값을 제외할 수 있는 방법은 뭔지 문의드립니다!
안녕하세요 영한님, 정말 좋은강의 잘 듣고있습니다. Merge관련해서 질문이 하나있는데요..! 아래 두 method 모두 시작할때 persistence context가 비어있고 찾는 entity가 db에 있다고 가정할때 비슷한 (혹은 같은) flow로 진행될까요? 여기서 method parameter, Entity e,는 업데이트될 (id가 set되어있고 field가 업데이트 되어있는)객체입니다. @Transactional public void updateEntity(Entity e){ Entity foundEntity = em.find(Entity.class, e.getid()); foundEntity.setFieldOne("New Data"); } @Transactional public void updateEntity(Entity e){ em.merge(e); } Merge를 꼭 써야하는건 아니지만, 그냥 동작 메커니즘이 궁금해서 질문드립니다. Merge를 쓰는게 Update전에 항상 Select query로 db에서 객체를 조회하기때문에 쓰기를 지양하라고 하시는건가요, 아니면 merge를 쓸때 또 다른 downside가 있나요?
섹션 4. 회원 도메인 개발-회원서비스 개발에 대해 질문있습니다. 테스트 junit으로 테스트 실행시 아래와 같은 에러가 나옵니다. Execution failed for task ':test'. > No tests found for given includes: [jpabook.jpashop.Service.MemberServiceTest](filter.includeTestsMatching) package jpabook.jpashop.Service; import static org.junit.Assert.*; import jpabook.jpashop.domains.Member; import jpabook.jpashop.repository.MemberRepository; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; //메모리db로 test import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.assertEquals; @RunWith(SpringRunner.class) @SpringBootTest @Transactional class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test public void 회원가입() throws Exception { //given Member member = new Member(); member.setName("kim"); //when Long savedId = memberService.join(member); //then assertEquals(member, memberRepository.findOne(savedId)); } // @Test // public void 중복회원예외() throws Exception { // //given // // //when // // //then // // } } 에러 사항을 찾아보니 디렉토리 위치가 다를 경우에 에러가 날 수 있다고 하여 디렉토리 위치를 비교해봐도 같습니다. junit테스트도 동일합니다. 어느 부분이 틀린지 알 수 있을까요?
안녕하세요. 지금 강의를 듣기 시작한 왕왕초보입니다^^수업중 예제로 복습하고 있었는데 아래 케이스 관련 궁금한 점이 생겨서요~ 확인 부탁드립니다. br% : br 뒤에 어떤 것이 들어가도 상관 없음 %br : br 앞에 어떤 것이 들어가도 상관 없음 %br% : br 앞 뒤에 어떤 것이 들어가도 상관 없음 brazil인 경우 br% 추출되고, %br 추출안되고, %br%에서는 추출되는데.. 그렇다면 %br%는 or인가요? 앞이어도 상관없고 뒤여도 상관없는 건가요?%br%의 경우 Brazil이 나오는데 br앞에는 아무 문자도 없어서 이게 맞는건지 확인 부탁드립니다. 감사합니다~~~
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] 스프링 cascade 활용도 측면에서 궁금한 것이 있습니다. 영한님 - 인프런 (inflearn.com) 이 질문을 남겼었던 수강생입니다! 잠깐 상황을 요약하면 Program 과 Review 그리고 User 가 다대 1 1대 다 로 묶여 있는 상황입니다. program 에서 program.addReview 메서드를 활용하기 위해 cascade type 을 적용하였었습니다. 하지만 영한 님은 이부분의 코드는 별로 좋은 코드가 아니다! cascade 옵션 질문 - 인프런 (inflearn.com) 를 참고해서 보아라. 라고 하셨습니다. 위 질문의 요약은 강의에서 Order 는 OrderItem 을 개인 소유 하나, Order 와 Delivery 는 Delivery 가 여러 곳에서 참조할 수 있으므로 개인 소유 하지 않는다. 라고 읽었습니다. 참조 하는 것과 Cascade Type .all 이 무슨 관계가 있는지 모르겠습니다. 6줄요약하면: Delivery 와 Review 는 여러 곳에서 참조할 수 있으므로 CascadeType all 을 붙이지 말라고 하신 것 같은데 여러 곳에서 참조가능성이 있으면 CascadeType all 을 왜 붙이지 말아야 하는지 궁금합니다. 단순히 계속 코드를 보며 추적해야 하는 것 때문인가요?? 이 부분이 와닿지 않습니다. 혹시 실제 예를 들어 설명해주실수 있나요??
안녕하세요 카일님. 여쭤보고 싶은것이 있어 글을 남기게 되었습니다. 저는 SQL에 대해 간단한 쿼리(JOIN정도)는 직접 작성할 수 있는 이해도가 있는 PM입니다. 예전에 빅쿼리를 공부하며 카일님의 블로그를 보며 공부하기도 했었고, 제가 직접 서비스와 빅쿼리를 연동하기도 했습니다. 현재 서비스에서 궁금한점이 있을때마다 GPT에게 빅쿼리용 쿼리문을 작성해달라고 요청해서 데이터를 보고 있는데요. GPT에게 작성해달라고하면 2-3번 오류가 생길때도 있지만 제가 보고 싶은 데이터를 대부분 잘 짜주는거같아서 만족하며 사용하고 있어요. ( array, struct 같은 자료형은 제가 편하게 쓸수 있는 수준이 아닌데 gpt가 잘 짜주더라구요) 제가 보고 싶은 데이터는 대부분 딥한 수준이 아니어서 GPT가 작성해줄 수 있는것같다고 느껴져서 이 강의도 그렇고, 빅쿼리를 공부하지 않아도 되겠다는 생각까지 들더라구요. 저 개인적으로 회사에 영업, 기획직군은 GPT에게 물어보면 보고싶은 데이터를 다 볼 수 있지 않을까 생각이 들구요. 혹시 카일님께서는 어떻게 생각하시는지 , 혹시 GPT가 쿼리문 작성에서 대체할수 없는 영역이 있을지 조심스럽게 여쭤보고 싶습니다. 항상 카일님 올려주시는 글들 통해 많이배우고 있습니다. 감사합니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 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 다른분들 설정파일 따라해도 안됩니다..
https://github.com/NeoSeo/Obsidian/tree/5b5e077f431f28b174d0174e5f594b9ed5a13b7b/Project/Retention_Rate 분석 공부하시는 분 중에 sql 공부하시는 분도 많을 것 같아서 sql용 쿼리도 만들어 봤습니다. 도움이 됐으면 좋겠습니다. Postgresql로 작성했으니 참고하세요~
hr schema는 정상적으로 설치가 되고 작동하는 것 같은데, nw schema는 설치시에 오류가 뜨게 됩니다. 본수업에서 했던 방식에서 nw 열었을 때, 내용이 비어 있어서 github에 올린 것으로 create schema nw 진행했습니다. 그런데 이런 오류가 발생하고 있습니다. Dbeaver를 재설치 하거나 하지는 않았고, schema를 지웠다가 다시 해도 동일한 오류가 뜨고 있습니다. (맥환경입니다.) 강의를 따라해도 되지 않고, 방법을 몰라 여쭈어 봅니다.
강사님 안녕하세요 강의 신청을 했는데, 2일동안 아무리 sql 환경 셋팅을 해보려했는데 제 pc에서는 서버 연결이 안되서 죄송하지만 혹시 환불 해주실 수 있을까요? 자료는 모두 삭제 완료 하였습니다ㅜㅜ 다른 DB 강의를 들어야 할 거 같습니다. 현재 환불 버튼이 없어져서 인프런에 요청 해주시면 정말 감사하겠습니다 ㅜㅜㅜㅜ
아래와 같은 오류가 뜨는데, 지나쳐도 괜찮나요? 테이블을 만들 수 없음: Error while reading data, error message: CSV processing encountered too many errors, giving up. Rows: 97; errors: 97; max bad: 0; error percent: 0 작업으로 이동
public class Animal { public void sound(){ System.out.println("동물 울음 소리"); } } public class Dog extends Animal{ @Override public void sound() { System.out.println("멍멍"); } } public class BabyDog extends Dog{ public void sound() { System.out.println("낑낑"); } } public class AnimalPolyMain1 { public static void main(String[] args) { Dog dog = new Dog(); BabyDog babyDog = new BabyDog(); soundAnimal(dog); soundAnimal(babyDog); } private static void soundAnimal(Animal animal){ System.out.println("동물 소리 테스트 시작"); animal.sound(); System.out.println("동물 소리 테스트 종료"); } } 안녕하세요. 강의 중 추가적으로 궁금한게 생겨서 질문드립니다. 그림에 따르면 코드에 만약에 제가 BabyDog클래스를 만들어서 Dog를 extends 한 후 오버라이딩을 하지 않고 매서드를 생성하면 "낑낑"이 아닌 매서드 오버라이딩이 된 "멍멍"이 출력되어야 하는 거 아닌가요??