학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 강의에 나온 내용대로 아래 처럼도 해 보고 spring: profiles: active: local 검색해서 나온대로 아래처럼도 해보았는데, spring: config: activate: on-profile: local 오류도 뜨지 않고 콘솔에는 insert 쿼리가 아예 뜨지 않습니다 ㅠ
현재 MemberRepository test를 진행하고 있습니다. 데이터베이스 같은 경우는 mysql로 진행을 하고 있습니다. properties를 사용할 경우에는 테스트가 성공적으로 진행되는데 yml로 테스트를 진행할 경우 jdbc에서 dialect를 인식하지 못하거나 BeanCreationException 오류가 생깁니다. 분명 둘다 시스템 설정을 저장하는 파일인데 왜 이런 차이가 생기나 궁금해서 질문 남깁니다
[질문 내용] package generic.test.ex5; import generic.animal.Animal; import generic.animal.Cat; import generic.animal.Dog; public class WildCardMain2 { public static void main(String[] args) { Box<Object> objBox = new Box<>(); Box<Animal> animalBox = new Box<>(); Box<Dog> dogBox = new Box<Dog>(); Box<Cat> catBox = new Box<Cat>(); //writeBox(objBox); writeBox(animalBox); Animal animal = animalBox.get(); System.out.println("animal = " + animal); } static void writeBox(Box<? extends Animal> box) { box.set(new Dog("멍멍이", 100)); } } package generic.test.ex5; public class Box<T> { private T value; public void set(T value) { this.value = value; } public T get() { return value; } } ====== 질문 수정 extends를 대입하면 Animal 이하의 개체(예: Cat, Dog)들이 전달 가능해지고, 이는 Dog를 담을 수 없기 때문에 컴파일 오류가 발생한다고 이해했습니다. 따라서 Super를 통해 이런 가능성을 차단합니다. 제가 이해한 것이 맞을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 클래스로 할때 오류가 납니다 ㅠㅠ UsernameOnlyDto package study.datajpa.repository; public class UsernameOnlyDto { private final String username; public UsernameOnlyDto(String username) { this.username = username; } public String getUsername() { return username; } } MemberRepository List<UsernameOnlyDto> findProjectionByUsername(@Param("username") String username); Test @Test public void projections() { // given Team teamA = new Team("teamA"); em.persist(teamA); Member m1 = new Member("m1", 0, teamA); Member m2 = new Member("m2", 0, teamA); memberRepository.save(m1); memberRepository.save(m2); em.flush(); em.clear(); //when List<UsernameOnlyDto> result = memberRepository.findProjectionByUsername("m1"); for (UsernameOnlyDto usernameOnlyDto : result) { System.out.println("usernameOnlyDto = " + usernameOnlyDto); } //then } 오류내용 java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@66450129 testClass = study.datajpa.repository.MemberRepositoryTest, locations = [], classes = [study.datajpa.SpringDataJpaApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@28f2a10f, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@56cdfb3b, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@35aea049, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@7c24b813, org.springframework.boot.test.web.reactor.netty.DisableReactorResourceFactoryGlobalResourcesContextCustomizerFactory$DisableReactorResourceFactoryGlobalResourcesContextCustomizerCustomizer@485966cc, org.springframework.boot.test.context.SpringBootTestAnnotation@b5608ce], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.컬럼과 필드매핑 강의에서 처음 main을 실행하면 create Member하면서 아래에 이것저것 나와야하는데 저는 7월 24, 2024 7:53:00 오후 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformationINFO: HHH000204: Processing PersistenceUnitInfo [name: hello]7월 24, 2024 7:53:00 오후 org.hibernate.Version logVersionINFO: HHH000412: Hibernate ORM core version 6.4.2.Final7월 24, 2024 7:53:00 오후 org.hibernate.cache.internal.RegionFactoryInitiator initiateServiceINFO: HHH000026: Second-level cache disabled7월 24, 2024 7:53:01 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configureWARN: HHH10001002: Using built-in connection pool (not intended for production use)7월 24, 2024 7:53:01 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001005: Loaded JDBC driver class: org.h2.Driver7월 24, 2024 7:53:01 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001012: Connecting with JDBC URL [jdbc:h2:tcp://localhost/~/test]7월 24, 2024 7:53:01 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001001: Connection properties: {password=****, user=sa}7월 24, 2024 7:53:01 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreatorINFO: HHH10001003: Autocommit mode: false7월 24, 2024 7:53:01 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections <init>INFO: HHH10001115: Connection pool size: 20 (min=1)7월 24, 2024 7:53:01 오후 org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl constructDialectWARN: HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)7월 24, 2024 7:53:02 오후 org.hibernate.engine.transaction.jta.platform.internal.JtaPlatformInitiator initiateServiceINFO: HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)7월 24, 2024 7:53:02 오후 org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PoolState stopINFO: HHH10001008: Cleaning up connection pool [jdbc:h2:tcp://localhost/~/test]이렇게만 나오는데 왜그러는지 알려주세요 ㅠㅠ h2데이터베이스 켰습니다! 코드와 함꼐 올리겠습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의 초반에 HellospringApplication의 main 을 실행했을떄 다른거는 다 잘나오는데, stop을 했을경우 위와같이 에러가 나옵니다ㅠㅜ 혹시 그냥 중지해서 나오는걸까요? 아니면 어떤 부분이 잘못된건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 새로운 switch 문을 작성 했는데 오류가 나네요 switch 문 전체가 빨간줄로 에러가 뜨는데 이유좀 알려주세요 package reEx1; import java.util.Scanner; public class Switch_01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("등급을 입력하세요:"); int grade = scanner.nextInt(); int coupon = switch (grade) { case 1 -> 1000; case 2 -> 2000; case 3 -> 3000; default -> 500; }; } }
동영상은 17분 30초쯤 해당됩니다. 여기서 class X에 method2()를 하면 본인 classX가 아니라 classY의 method2()로 간다고 하셨는데 그럼 만약 classX에 metho2()가 this.method2()로 바뀌면 classX의 method2()로 가는 건가요? 감사합니다
코드 시작할때 부모의 car을 먼저 부르고 그다음 자식것을 호출하는것은 잘 알겠습니다. 만약에 스타트 엔진이라는 메서드가 자식에게도 있었다면 오버라이딩이 우선, 재정의된 자식것이 출력 -> 다음코드진행 위의 car처럼 부모것을 부르고, 자식것을 출력 -> 출력 (이게 성립되려면 스테틱이 붙어서 하이딩이 되어야 하는지..?) 답변 요청드립니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] @PostMappping("/members/new") public String create() 여기에 Memberform form 을 파라미터로 넣었는데, Memberform 클래스를 사용하지 않고 이런식으로 그냥 Member 만 사용해서 바로 join이 가능한가요? 가능하지만 MemberForm 클래스를 활용하는 데 장점이 존재하기 때문에 MemeberForm 클래스를 사용하는건가요? 아니면 아예 아래 코드처럼은 불가능한건가요? @PostMapping("/members/new") public String create(Member member) { memberService.join(member); return "redirect:/"; }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 프록시 객체에 대한 개념을 들어도 실제로 어떤 상황일때 쓰이는지 잘 이해가 안가는데 설명부탁드립니다. 2.준영속,삭제 상태의 프록시 객체를 조회하려고 하면 영속성 컨텍스트의 도움을 받을 수 없기 때문에 예외가 발생한다고 하셨습니다. 그렇다면 프록시 객체가 아닌 일반 객체에서는 예외가 발생하지 않나요? 만약 그렇다면, 왜 그렇게 되는지도 궁금합니다. 위와 같이 코드를 작성했습니다. find를 하고 출력할 때 프록시 객체가 출력되는건 이해가 가는데. find를 할 때 왜 sql 쿼리가 나가는지 이해가 가지 않습니다. find가 실제 DB에서 조회하는건 맞지만, 동일성을 보장하기 때문에 조회를 하면 안되는게 아닌지..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] equals 메서드 오버라이딩 할 때 안에서 String 비교를 equals로 하셨는데 이러면 재귀호출되어 무한 반복되는 문제가 발생하지 않는 이유는 무엇인가요?