묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! Querydsl
JPA Test Code 관련해서 질문이 있습니다.
안녕하세요.JPA와 Querydsl 학습을 위해서 테스트 코드를 작성 중에 궁금한 부분이 있어서 질문 드립니다. 조회를 위한 테스트 데이터를 save 하고, querydsl로 작성한 repository를 이용해서 데이터를 조회하여 검증하고 있습니다. 여기서 궁금한 부분은 테스트 데이터를 save 하고나서 EntityManger를 이용해서 영속성 컨텍스트를 비워주는 작업을 테스트 코드마다 해주는게 맞는지 궁금합니다. 영속성 컨텍스트를 비워주지 않고 조회하면 영속성 컨텍스트에 존재하는 데이터를 읽기 때문에 테스트가 깨집니다. 현업에서도 Repository 테스트 코드를 작성할 때, 테스트 데이터를 넣어준 후 매번 flush / clear를 해주는지 아니면 다른 Best Practice가 있는지 알고싶습니다. class ProductQueryRepositoryTest extends DomainTestSupport { @Autowired private ProductRepository productRepository; @Autowired private ProductQueryRepository productQueryRepository; @Test @DisplayName("상품 아이디로 판매중인 상품 정보를 조회한다.") void findByIdIsSaleableTrue() throws Exception { // given ProductOption appleOption1 = createProductOption("1kg", 10000, 7000, 100, 10, true); ProductOption appleOption2 = createProductOption("2kg", 20000, 15000, 100, 5, false); Product apple = createProduct("사과", false, true, appleOption1, appleOption2); productRepository.save(apple); em.flush(); em.clear(); // when Optional<Product> optionalProduct = productQueryRepository.findByIdIsSaleableTrue(apple.getId()); // then assertThat(optionalProduct).isPresent() .get() .extracting("name", "isSaleable", "isDeleted") .contains(apple.getName(), apple.getIsSaleable(), apple.getIsDeleted()); List<ProductOption> productOptions = optionalProduct.get().getProductOptions(); assertThat(productOptions).hasSize(1) .extracting("name", "originalPrice", "salesPrice", "stockQuantity", "maxOrderQuantity", "isSaleable", "isDeleted") .containsExactlyInAnyOrder( tuple(appleOption1.getName(), appleOption1.getOriginalPrice(), appleOption1.getSalesPrice(), appleOption1.getStockQuantity(), appleOption1.getMaxOrderQuantity(), appleOption1.getIsSaleable(), appleOption1.getIsDeleted()) ); } // ... 중략 } @RequiredArgsConstructor @Repository public class ProductQueryRepository { private final JPAQueryFactory queryFactory; public Optional<Product> findByIdIsSaleableTrue(Long id) { return Optional.ofNullable( queryFactory .select(product) .from(product) .leftJoin(product.productOptions, productOption) .fetchJoin() .where( product.id.eq(id), product.isSaleable.isTrue(), product.isDeleted.isFalse(), productOption.isSaleable.isTrue(), productOption.isDeleted.isFalse() ) .fetchOne() ); } } 감사합니다.
-
미해결자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 2(마스터편)
미로찿기 질문드립니다
올려놓으신 코드로 런해봤는데 몇가지 질문이 있어 질문드립니다.출발을 0,0이 아닌 2,2로 하거나 사진에서 미로의 숫자 1을 0으로 바꿔봤는데 길이 있음에도 Exception이 발생하는데 한참을 봤는데 왜 이런 현상이 발생하는지 모르겠어서 질문드립니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
한번만 도와주세요!!!
지금 강의 초반 애플리케이션 개발 쪽 듣고 있는데 이런 오류가 발생해서 글 남깁니다. 구글링도 해보고 챗 지피티 한테도 물어봤는데 여전히 해결이 안되고 있습니다....ㅜㅜㅜ 오류 내역은 -> 2월 23, 2024 8:20:32 오후 jakarta.persistence.spi.PersistenceProviderResolverHolder$DefaultPersistenceProviderResolver logWARNING: jakarta.persistence.spi::No valid providers found.Exception in thread "main" jakarta.persistence.PersistenceException: No Persistence provider for EntityManager named hello at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:86) at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) at hellojpa.JpaMain.main(JpaMain.java:7)입니다. 아래에는 사진 첨부하겠습니다. pom.xml , persistence.xml 입니다제발 도와주세여ㅜㅜㅜㅜㅜㅜ,,,,흑훅
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
H2 데이터베이스 상에 표시되는 컬럼 순서
안녕하세요. 강의 따라하는 중에 H2 데이터베이스에 테이블이 잘 생성 되었는데요, 강의 화면 및 다른 질문자님들 화면과 달리 컬럼의 순서가 좀 다른 것을 발견했습니다. 이게 코드를 잘못 입력해서 이런 것인지, 아니면 원래 이런 것이 맞는지 질문 올립니다.ORDERS의 컬럼 순서 로그의 ORDERS 생성 쿼리 Order 클래스 답변에 필요한 코드가 더 있다면 말씀해주시면 올리겠습니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Transactianl DB 연동 부분 테스트 오류 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]JPA와 DB 설정, 동작확인 강의 13:41 부분 테스트 실행시 밑에와 같은 오류가 발생합니다. yml 띄어쓰기도 확인했는데 이상이 없습니다. 왜 안될까요.... org.springframework.dao.InvalidDataAccessResourceUsageException: could not prepare statement [Sequence "MEMBER_SEQ" not found; SQL statement:select next value for member_seq [90036-224]] [select next value for member_seq]; SQL [select next value for member_seq] at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:277) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:241) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550) at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:335) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:717) at jpabook.jpashop.MemberRepository$$SpringCGLIB$$0.save(<generated>) at jpabook.jpashop.MemberRepositoryTest.testMember(MemberRepositoryTest.java:28) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement [Sequence "MEMBER_SEQ" not found; SQL statement:select next value for member_seq [90036-224]] [select next value for member_seq] at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:66) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:194) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement(StatementPreparerImpl.java:79) at org.hibernate.id.enhanced.SequenceStructure$1.getNextValue(SequenceStructure.java:100) at org.hibernate.id.enhanced.PooledOptimizer.generate(PooledOptimizer.java:76) at org.hibernate.id.enhanced.SequenceStyleGenerator.generate(SequenceStyleGenerator.java:555) at org.hibernate.id.IdentifierGenerator.generate(IdentifierGenerator.java:147) at org.hibernate.event.internal.AbstractSaveEventListener.generateId(AbstractSaveEventListener.java:153) at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:124) at org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:175) at org.hibernate.event.internal.DefaultPersistEventListener.persist(DefaultPersistEventListener.java:93) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:77) at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:54) at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:127) at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:774) at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:758) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:319) at jdk.proxy2/jdk.proxy2.$Proxy102.persist(Unknown Source) at jpabook.jpashop.MemberRepository.save(MemberRepository.java:14) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:765) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ... 8 moreCaused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Sequence "MEMBER_SEQ" not found; SQL statement:select next value for member_seq [90036-200] at org.h2.message.DbException.getJdbcSQLException(DbException.java:576) at org.h2.message.DbException.getJdbcSQLException(DbException.java:429) at org.h2.message.DbException.get(DbException.java:205) at org.h2.message.DbException.get(DbException.java:181) at org.h2.command.Parser.readSequence(Parser.java:7678) at org.h2.command.Parser.readTermWithIdentifier(Parser.java:4593) at org.h2.command.Parser.readTerm(Parser.java:4311) at org.h2.command.Parser.readFactor(Parser.java:3343) at org.h2.command.Parser.readSum(Parser.java:3330) at org.h2.command.Parser.readConcat(Parser.java:3305) at org.h2.command.Parser.readCondition(Parser.java:3108) at org.h2.command.Parser.readExpression(Parser.java:3059) at org.h2.command.Parser.parseSelectExpressions(Parser.java:2931) at org.h2.command.Parser.parseSelect(Parser.java:2952) at org.h2.command.Parser.parseQuerySub(Parser.java:2817) at org.h2.command.Parser.parseSelectUnion(Parser.java:2649) at org.h2.command.Parser.parseQuery(Parser.java:2620) at org.h2.command.Parser.parsePrepared(Parser.java:868) at org.h2.command.Parser.parse(Parser.java:843) at org.h2.command.Parser.parse(Parser.java:815) at org.h2.command.Parser.prepareCommand(Parser.java:738) at org.h2.engine.Session.prepareLocal(Session.java:657) at org.h2.server.TcpServerThread.process(TcpServerThread.java:278) at org.h2.server.TcpServerThread.run(TcpServerThread.java:183) at java.base/java.lang.Thread.run(Thread.java:833) at org.h2.message.DbException.getJdbcSQLException(DbException.java:644) at org.h2.engine.SessionRemote.readException(SessionRemote.java:650) at org.h2.engine.SessionRemote.done(SessionRemote.java:619) at org.h2.command.CommandRemote.prepare(CommandRemote.java:78) at org.h2.command.CommandRemote.<init>(CommandRemote.java:50) at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:487) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1166) at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:93) at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:316) at com.zaxxer.hikari.pool.ProxyConnection.prepareStatement(ProxyConnection.java:327) at com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement(HikariProxyConnection.java) at com.p6spy.engine.wrapper.ConnectionWrapper.prepareStatement(ConnectionWrapper.java:118) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare(StatementPreparerImpl.java:94) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:183) ... 38 more
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
아직도 시작을 못하고 있어요,,,,,
다음과 같은 오류가 나와서 어떻게 해야할 지 모르겠네요 따로 건든건 없는데요... A problem occurred configuring root project 'library-app'.> Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.1. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.0.1 > No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was found. The consumer was configured to find a runtime of a library compatible with Java 11, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.5' but: - Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.1 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.5') - Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.1 declares a runtime of a component, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 11) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '7.5') - Variant 'mavenOptionalApiElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.0.1 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.5') - Variant 'mavenOptionalRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.0.1 declares a runtime of a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component compatible with Java 17 and the consumer needed a component compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.5') - Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.1 declares a runtime of a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component compatible with Java 17 and the consumer needed a component compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.5') - Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.1 declares a runtime of a component, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 11) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '7.5')* 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.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
왜 hashMap을 사용하는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. member 라는 객체에 id와 name이 모두 담겨있을 텐데hashmap 을 또 만들어서 id와 name을 맵핑시키는 이유가 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
HelloSpringApplication 파일 run시 무한빌드??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의 진행중에 HelloSpringApplication 파일을 run하면터미널에서 building중이라면서 계속 시간은 지나가는데 종료가안되요.localhost:8080에는 진입되는데 building이 계속진행되는건 뭘까요... 정지를 누르면 아래처럼 에러메시지가 나와요.Execution failed for task ':HelloSpringApplication.main()'.> Build cancelled while executing task ':HelloSpringApplication.main()'* 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.5/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.BUILD FAILED in 13s3 actionable tasks: 2 executed, 1 up-to-date
-
미해결김영한의 실전 자바 - 기본편
객체지향과 객체지향 언어가 같은말인가요?
객체지향과 객체지향 언어가 같은말인가요? 정답을 알려주세요 ~~!!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
생성자 사용 시 new 연산자를 사용하지 않는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의에서 public MemberService memberService(){ return new MemberService(memberRepository());}를 사용해서 서비스와 리포지토리 빈을 서로 연결해주셨는데, 여기서 memberRepository()가 생성자니까 public MemberService memberService(){ return new MemberService(new memberRepository());}이런식으로 써야할 것 같은데, new가 사용되지 않아서 질문드립니다. 왜 이런 예외적인 문법이 쓰여지게 되는 것일까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
엔티티 클래스 개발2 Category 관련 실행 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]엔티티 클래스 개발2 강의 Category 엔티티 클래스 까지 작성을 완료하고 JpashopApplication을 run 하는과정에서 에러가 뜨네요. 에러 내용은 다음과 같습니다.Caused by: org.hibernate.type.descriptor.java.spi.JdbcTypeRecommendationException: Could not determine recommended JdbcType for Java type 'jpabook.jpashop.domain.Category'구글링을 해도 해결 방법을 잘 모르겠어서 질문 남깁니다. 도와주세요 ㅠㅠCategoryItem
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원등록 강의 - @NotEmpty
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강사님! 회원등록폼에서 @NotEmpty 어노테이션을 사용하려는데되지 않아서 의존성에 'org.springframework.boot:spring-boot-starter-validation'를 추가했습니다. 해당 기능이 흥미로워 spring-boot-validation의 공식 문서를 뒤져보려고 하니까https://spring.io/guides/gs/validating-form-input주소에는 @notnull만 있고 @notempty 어노테이션은 없더라구요..그래서 https://jakarta.ee/specifications/bean-validation/3.0/jakarta-bean-validation-spec-3.0.html자카르타 명세서로 찾아보니까 @NotEmpty가 나오는데 그러면 해당 어노테이션은 어디에 속하는건지 좀 헷갈리고, 해당 기능과 관련된 validation을 공부하려면 어떤 문서를 봐야하는지 모르겠어서 혼자 고생하다가 질문 드립니다..! 긴 글 읽어주셔서 감사합니다.
-
해결됨자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
20강. 코틀린의 scope function 수강 중 질문
안녕하세요. 최태현님 오늘자로 해당 강의 다 수강완료하였습니다. 먼저 좋은 강의 제공해주셔서 감사하다는 말씀 드립니다.작은 질문을 하나 드리고자 하는데요. 강의 내용과는 다소 무관한 질문입니다.20강. 코틀린의 scope function 강의 중 11:25에 나오는 코드인데요.val person = personRepository.save(Person("최태현", 100))찾아보니 이러한 방식으로 Repository를 통해 저장한 인스턴스를 받아와 쓰는 형태의 코드를 꽤 작성하시는 거 같습니다. 다만 제가 의문인 것은 만약 JPA를 사용한다고 한다면 엔티티 매니저에 의해 영속화된 Person("최태현", 100)엔티티나 personRepository.save()를 통해 반환된 엔티티나 완전히 동일한 객체일탠데 왜 굳이 이렇게 코드가 작성되는지 궁금합니다. 🙂 val person = Person("최태현", 100) val person2 = personRepository.save(person) println(person.equals(person2)) // trueperson이나 person2나 엔티티 매니저에 의해 같은 객체일 것 같은데 말이죠. 한 줄로 간결한 코드를 만들기 위함일까요?너무 강의와 무관한 질문이라 결례를 범하는지는 모르겠습니다만 최태현님의 의견이 궁금하여 질문 남깁니다. 감사합니다.
-
미해결김영한의 실전 자바 - 기본편
메서드
Getter method 나 setter method 을 나누는 기준은 본인의 메서드가 포함되어 있는 class 내의 instance variables 를 변경시키느냐 마느냐에 따라 다른가요 ? 예로 public class Hello { private int result; public int method1() { result = (int)(Math.random() * 2) + 4; return result; }}우리는 Math.random() static method 를 accesor method 라고 부르나요? 아니면 mutator method 라고 부르나요 ?저는 Math.random 이 result 값 즉, 필드변수의 값을 변경시키는데 영향을 끼치고 있으므로 Mutator method 라고 생각했는데 이렇게 생각해도 괜찮나요?
-
해결됨김영한의 실전 자바 - 기본편
static 영역에는 static 변수들을 보관한다는 설명에 관해서
제목에 언급한 대로 위 부분에 대해 질문이 있는데요. 자바 메모리 구조와 static 강의와 교안을 봐도 다음과 같이 static 영역에 대해 설명하고 있습니다.static 영역: static 변수들을 보관한다.하지만 코드를 설명할 때 이미지를 보면 static 영역에 static 변수들만 있는 게 아니라 클래스 정보까지 담겨있습니다. static 영역에는 static 변수들과 클래스 정보 모두를 포함하고 있다고 수정해서 이해해야 할까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
로그가 잘못된 것 같아요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강사님 코드제 코드member0 이 아니라 m1으로 시작하는게 다르고 강사님 코드제 코드call next value 이런 로그랑 TransactionContext 로그도 없어요..어디가 잘못된 건지 모르겠습니다ㅠhttps://drive.google.com/file/d/1w5ImjBLJyYsqIQD3LD89TT900CqTYjkW/view?usp=sharing링크 공유합니다
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
자바 버젼이 안맞는거같은데 어떻게 해야할지 모르겠네요 ㅜㅜ
No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.1 was found. The consumer was configured to find a runtime of a library compatible with Java 11, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.5' but:위와같은 오류가 나오면서 오류가 나서 그레이들이 멈추는데 해결을 못해서 강의 시작을 못하고 있어요 ㅠㅠ 어떻게 해야하나요
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
h2 데이터베이스
[질문 내용]h2 데이터베이스 다운로드하고 압축을 풀었는데, 저는 맥북이라 쌤이 올려주신 디렉토리 이동, 권한 주기, 실행 명령어를 따라해봤는데 안되서 그러는데 혹시 원인이 뭘까요..??사진 같이 첨부하겠습니다.저는 저렇게 폴더가 없다고 나오는거 같은데,, 왜 그런걸까요,,, 시작부터 난관이네요..흑.....
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
창닫힘
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]오른쪽 아래 메시지가 뜨긴하는데,,금방 사라지고,아래에서 실행을 시키면 바로 창이 닫히는 현상입니다.삭제후 재 설치해도 동일한 현상이,,뭔가 충돌되고 있는걸까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
memberRepository에 final을 붙이는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. MemberService의 memberRepository에 final 키워드가 붙어야 하는 이유를 알고 싶습니다. store에는 final이 붙지 않았어서 그 둘의 어떤 차이 때문에 final이 붙을지 말지가 결정되는 것인지 궁금합니다.