묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
package 네임에서 에러가 발생했습니다
[질문 내용]위 방식으로 프로젝트 생성 후에 package 네임에서 에러가 발생하면서 main 메서드 실행이 안되는데 어떻게 해결하는 건가요? ㅠㅠ 구글에 검색해봐도 모르겠어서 질문합니다
-
미해결윤재성의 자바 기반 안드로이드 앱개발 Part 1 - UI Programming
안드로이드 스튜디오 레이아웃 파렛트 오픈 문의
안드로이드 스튜디오 2022년 플라밍고 패치2 버전 사용하고 있습니다.현재 레이아웃 수강중에 있는데, 강의 버전이 틀려서 문의 드립니다.뉴프로젝트 -> 레이아웃 파렛트 오픈까지 과정을 제가 사용하고 있는 버전으로 순서 부탁합니다.
-
미해결실전! Querydsl
JPAQueryFactory 의 @Bean 등록
안녕하세요,위 사진처럼 JPAQueryFactory를 별도로 생성해주거나, 아니면 JPAQueryFactory 를 별도로 @Bean 등록해서 생성자 파라미터로 주입받거나 두가지 방식으로 아무거나 해도 되잖아요? 그런데 문득 궁금한데, 습관처럼 사용하던 EntityManager 같은 것들은 Spring이 자동으로 @Bean 으로 등록해서 관리하고 있는 거죠? 그렇다면 JPAQueryFactory는 왜 별도로 스프링이 @Bean 으로 자동 등록해두지 않은 거죠? 감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
프록시 객체의 재정의된 equals 메서드를 호출하게 되면 초기화되나요?
@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Post post)) return false; return id.equals(post.getId()); }위에 처럼 equals 메서드를 재정의했고 id값만 사용해 객체를 비교했습니다. 예상한걸로는 id값만 사용했기에 객체가 초기화 되지 않는걸 예상했고 하지만 실제로 동작에서는 초기화가 되는것을 확인했습니다. @Override public boolean equals(Object o) { return true; }그리고 테스트 하기위해 위에 처럼 필드를 사용하지 않게 재정의를 했고 하지만 역시 equals를 사용하면 객체가 초기화 되었습니다. 이유가 무엇인가요? 스택오버플로우 에서는 equals가 재정의되면 프록시 객체에서는 원본객체로 위임한다는 답변이 있습니다. 원본 객체로 위임하면서 초기화가 발생하는것일까요?
-
해결됨자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
isAdult() 함수를 custom getter를 활용한 프로퍼티 변환
안녕하세요. 강의 정말 잘 듣고 있습니다!isAdult() 함수를 custom getter를 활용한 프로퍼티 변환에 대한 부분인데요..fun isAdult(): Boolean { return age >= 20 } fun isAdult2() = age >= 20 val isAdult5 get() = this.age >= 20 var isAdult6 get() = this.age >= 20 set(value) {} var isAdult7 = false get() = this.age >= 20isAdult() 함수를 변환하는 여러가지 방법들을 시도해 보았는데요. 다 동일한 결과를 얻더라구요.isAdult2() 는 return 하는게 단일값 이면 block 을 없애고 반환 타입도 생략한 방법이고isAdult5는 수업시간에 보여주신 custom getter를 활용한 방법입니다. Q1. isAdult를 val 이 아닌 var로 바꿔봤고 아래 코드처럼 써보니 빨간줄이 뜨더라구요.var isAdult8 get() = this.age >= 20val은 getter만 있어야 되지만, var은 setter도 있어야 하는건가 싶어서 isAdult6처럼 custom setter도 명시를 하니까 빨간줄이 사라지더라구요.그래서.. 'var로 프로퍼티를 선언했고, custom getter를 명시했다면, custom setter를 반드시 명시해줘야 하는건가?' 라고 이해하려 했는데, isAdult7의 경우 따로 custom setter를 명시해주지 않아도 빨간줄이 뜨지 않더라구요.어떤 방식으로 이해해야 할지 감이 안오네요.요약: isAdult8는 왜 안되고 isAdult6과 isAdult7은 왜 되는건가요?Q2.val person2 = Person("KIM", 10) println(person2.isAdult5) // false person2.age = 20 println(person2.isAdult5) // true 제가 지금까지 이해하기로는 val은 자바에서 final 같은거라 한번 값이 초기화되면 값을 변경 못해야 될것 같은데,, isAdult5 처럼 val로 선언했을때 isAdult5가 false를 한번 가리키게 되면 계속 false만 가리키고 있어야할것 같은데, Person의 age 값을 10에서 20으로 변경하면 val로 선언한 isAdult5이 true로 변경이 되네요. 물론 성인 여부를 확인해야 되는 기능상 age가 바뀌면 그에 따라 결과도 바뀌는것이 당연히 자연스러운것이긴 한데, 문법적으로 val 프로퍼티의 값이 어떻게 변경될 수 있는지 의아합니다.요약: val 프로퍼티 인데도 왜 값이 변경될 수 있나요? final 개념으로 이해하면 안되는 건가요감사합니다.
-
미해결실습으로 배우는 선착순 이벤트 시스템
안녕하세요 강사님 Redis Template에 관한 질문입니다.
사놓고 안 듣다가 이제 제대로 Redis를 학습해보려고 합니다.Redis Template를 사용하는 방식과그냥 Repository를 사용하는 방식이 있다고 들었습니다.Redis Template 말고 interface RedisRepository extends CrudRepository<>쿠폰 발급을 이렇게 정의해서 사용할 수 있나요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
질문있습니다
convertUSD(converter, 2);강의 내용 중 위의 코드가다시 아래의 코드로 변하던데, 이부분이 이해가 되지 않습니다. convertUSD(public void convert(int USD) { System.out.println(USD + " 달러 = " + (USD * 1400) + " 원"); }, 2);converter은 객체이고, 아래의 코드는 함수인데 왜 이꼴이 되는걸까요?
-
미해결실전! Querydsl
Projections.fields()와 Projections.bean() 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]>> 로컬 환경스프링부트 3.1.2hibernate-core 6.2.6안녕하세요!Projections.bean()은 setter를 이용해서 인스턴스를 만든다고 하셨는데, getter/setter를 전부 제거해도 테스트를 통과하고 인스턴스도 잘 초기화가 되어버렸습니다.좀 이상하기도 하고 bean()와 fields()가 동작 방식이 거의 같은 것 같아 확인해보니 new QBean<T>를 할 떄 fields()에는 fieldAccess 파라미터에 true를 인수로 넣는 차이밖에 없더라고요.public static <T> QBean<T> fields(Class<? extends T> type, Expression<?>... exprs) { return new QBean<T>(type, true, exprs); }라이브러리 코드를 보면fieldAccess가 true면 this.fields에 값을 바인딩하고 this.setters는 emptyList로 초기화하고 fieldAccess가 false일 경우 this.fields를 emptyList로 초기화하고 this.setters에 값을 바인딩하는데요.if (fieldAccess) { this.fields = initFields(bindings); this.setters = Collections.emptyList(); } else { this.fields = Collections.emptyList(); this.setters = initMethods(bindings); }실무에서 활용할 때 이 두 함수 관련해서 주의점이 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
세팅 질문입니다.
도커를 사용해서 mysql에 붙혀서 하고있는데 아래와같이 에러가 나옵니다. 어떻게 해야 하나요?order서비스파일에서 에러납니다. db가 안붙어서 그런건가요? 같은 컴퓨터인데 lombok이 동작이 안되길래 lombok되는곳으로 옮겨서 했습니다. 파일 주소는 아래 첨부합니다.error: incompatible types: javax.persistence.criteria.Order cannot be converted to shopapi.jpashop.domain.OrderOrder order = orderRepository.findOne(orderId);error: incompatible types: shopapi.jpashop.domain.Order cannot be converted to javax.persistence.criteria.OrderorderRepository.save(order);^error: incompatible types: List<javax.persistence.criteria.Order> cannot be converted to List<shopapi.jpashop.domain.Order>return orderRepository.findAllByString(orderSearch);^ ^
-
해결됨스프링 시큐리티
스프링부트 버전 2.7이상 authenticationManagerBean 등록방법을 잘 모르겠습니다.
안녕하세요 선생님 일단 좋은 강의 감사합니다.선생님 강의를 들으면서 2.7버전으로 진행하고 있는데매니저 를 등록할때부터 막혔습니다. 제 나름대로 소스도 좀 제가 평소에 하던 방식으로 하고있었는데 강의 버전이랑 맞지 않으니 힘드네요 ㅠ 이 부분은 스프링부트 2.7이상에서는 어떻게 하면될까요? 깃허브 주소 : https://github.com/PeachCoolPiece/corespringsecurity 입니다.
-
해결됨실전! Querydsl
init 메서드에 @Transactional
init() 메서드에 @Transactional 을 넣어주는 이유는 무엇인가요? 감사합니다.
-
해결됨실전! Querydsl
valid 체크 메서드
안녕하세요인증할 때 != null 이라던가 StringUtils.hasText() 를 사용하시던데ObjectUtils.isEmpty() 함수를 사용하면 한번에 다 처리가 가능한데 사용안하는 이유가 있을까요? 다른 강의에서도 못 본 것 같아서요. 감사합니다.
-
해결됨자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 2(마스터편)
iterator 관련 질문입니다.
안녕하세요.iterator관련 해서 간단하게 질문 드립니다.hasNext() 와 next() 함수 모두 다음에 있는 요소에 관한 함수지 않습니까?코드를 작성하다가 문득 든 생각인데 이터레이터가 위치한 인덱스의 다음 인덱스를 뜻한다면 첫번째 원소는 어떻게 다룰 수 있는걸까?라는 의문이 들어서 질문글을 작성하게 되었습니다.1)여기서 다음의 뜻이 이터레이터가 위치한 인덱스를 말하는것인가요?아니면 이터레이터가 위치한 인덱스의 다음 인덱스를 말하는것인가요? 물론 전자여야 모든 뜻이 말이 되고 이해가 가기 때문에 전자겠지만자바 사이트에서 함수 정의를 보면 next라고 적혀 있어서 혹시나 해서 질문드립니다.전자가 맞다면 왜 하필 햇갈리게 next라고 했을까요? 2)그리고 hasNext가 이후에 요소가 있는지를 체크하는 함수라면 이터레이터가 arrayList의 마지막 인덱스에 위치할땐 false값을 리턴해서 마지막번째 원소를 다룰 수 없게 되지 않나요?혹시 arrayList도 마지막 원소에 c의 문자열 처럼 마지막에 null값이 항상 있기 때문에 마지막 원소까지 hasNext함수가 다룰 수 있는건지 궁금합니다. 다음이라는 단어 때문에 간단하던것들이 갑자기 모두 햇갈리네요.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
H2 서버 연결
안녕하세요 섹션2 h2 db를 설치하고 접속해보는 부분에서(아직 intelliJ 사용하지 않는 단계) 영한님께서 하시는 것 처럼 Server로 접속하려니까 안되고 아래와 같이 embedded로 하면 됩니다. 오류 메세지에서 test파일의 문제인가 싶어서 test파일을 생성해보기도 했고 다른 분들 질문에 대한 답변으로 올라온 test.mv 이런 파일은 없는거 같습니다(제가 못 찾은 것 일 수도 있습니다.) 그냥 embedded로 수업을 진행해도 상관이 없다면 괜찮지만 아니라면 어떻게 해결해야할까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA와 DB 설정, 동작확인 오류
test 수행하면 아래와 같은 오류가 납니다.java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@579846cc testClass = jpabook.jpashop.MemberRepositoryTest, locations = [], classes = [jpabook.jpashop.JpashopApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceLocations = [], 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.WebDriverContextCustomizerFactory$Customizer@3c130745, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@703580bf, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@70e8f8e, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@31d7b7bf, org.springframework.boot.test.context.SpringBootTestAnnotation@51dc4452], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:143) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:127) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:191) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:130) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:241) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:232) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:55)Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not instantiate id generator [entity-name=jpabook.jpashop.Member] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1770) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1155) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:608) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:436) at org.springframework.boot.SpringApplication.run(SpringApplication.java:312) at org.springframework.boot.test.context.SpringBootContextLoader.lambda$loadContext$3(SpringBootContextLoader.java:137) at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:58) at org.springframework.util.function.ThrowingSupplier.get(ThrowingSupplier.java:46) at org.springframework.boot.SpringApplication.withHook(SpringApplication.java:1406) at org.springframework.boot.test.context.SpringBootContextLoader$ContextLoaderHook.run(SpringBootContextLoader.java:545) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:137) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:108) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:187) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:119) ... 27 moreCaused by: jakarta.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Could not instantiate id generator [entity-name=jpabook.jpashop.Member] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:421) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:352) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1817) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1766) ... 48 moreCaused by: org.hibernate.MappingException: Could not instantiate id generator [entity-name=jpabook.jpashop.Member] at org.hibernate.id.factory.internal.StandardIdentifierGeneratorFactory.createIdentifierGenerator(StandardIdentifierGeneratorFactory.java:230) at org.hibernate.id.factory.internal.IdentifierGeneratorUtil.createLegacyIdentifierGenerator(IdentifierGeneratorUtil.java:126) at org.hibernate.mapping.SimpleValue.createGenerator(SimpleValue.java:414) at org.hibernate.internal.SessionFactoryImpl.lambda$createGenerators$1(SessionFactoryImpl.java:413) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179) at java.base/java.util.HashMap$ValueSpliterator.forEachRemaining(HashMap.java:1779) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596) at org.hibernate.internal.SessionFactoryImpl.createGenerators(SessionFactoryImpl.java:412) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:249) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:431) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1455) at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:75) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:376) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ... 52 moreCaused by: org.hibernate.HibernateException: Could not fetch the SequenceInformation from the database at org.hibernate.engine.jdbc.env.internal.ExtractedDatabaseMetaDataImpl.sequenceInformationList(ExtractedDatabaseMetaDataImpl.java:307) at org.hibernate.engine.jdbc.env.internal.ExtractedDatabaseMetaDataImpl.getSequenceInformationList(ExtractedDatabaseMetaDataImpl.java:151) at org.hibernate.id.enhanced.SequenceStyleGenerator.getSequenceIncrementValue(SequenceStyleGenerator.java:568) at org.hibernate.id.enhanced.SequenceStyleGenerator.configure(SequenceStyleGenerator.java:216) at org.hibernate.id.factory.internal.StandardIdentifierGeneratorFactory.createIdentifierGenerator(StandardIdentifierGeneratorFactory.java:224) ... 71 moreCaused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "start_value" not found [42122-214] at org.h2.message.DbException.getJdbcSQLException(DbException.java:502) at org.h2.message.DbException.getJdbcSQLException(DbException.java:477) at org.h2.message.DbException.get(DbException.java:223) at org.h2.message.DbException.get(DbException.java:199) at org.h2.jdbc.JdbcResultSet.getColumnIndex(JdbcResultSet.java:3492) at org.h2.jdbc.JdbcResultSet.getLong(JdbcResultSet.java:745) at com.zaxxer.hikari.pool.HikariProxyResultSet.getLong(HikariProxyResultSet.java) at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.resultSetStartValueSize(SequenceInformationExtractorLegacyImpl.java:110) at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.lambda$extractMetadata$0(SequenceInformationExtractorLegacyImpl.java:54) at org.hibernate.tool.schema.extract.spi.ExtractionContext.getQueryResults(ExtractionContext.java:50) at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:39) at org.hibernate.engine.jdbc.env.internal.ExtractedDatabaseMetaDataImpl.sequenceInformationList(ExtractedDatabaseMetaDataImpl.java:291) ... 75 moreH2를 실행한 상태로, jpashop.mv.db도 만들어져 있습니다. 근데 위와 같은 오류가 발생하는 이유를 모르겠습니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemoryMemberRepositoryTest에서 findByName()에러 (afterEach()가 안돼요)
MemoryMemberRepository와 MemoryMemberRepositoryTest입니다.MemoryMemberRepository에 clearStore()메서드 추가했고, MemoryMemberRepositoryTest에 afterEach()를 추가하였는데도 findByName()에서 에러가납니다.이유가 궁금합니다.감사합니다.package hello.hellospring.repository; import hello.hellospring.domain.Member; import java.util.*; public class MemoryMemberRepository implements MemberRepository{ private static Map<Long, Member> store = new HashMap<>(); //save할때 저장할 곳 private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++sequence); // id는 시퀀스++해서 넣고 name은 Member클래스보면 회원이 직접 입력한 name인것임. 따라서 이 2개 정보가 저장됨 store.put(member.getId(),member); return member; } @Override public Optional<Member> findById(Long id) { // optional.ofNullable 통해 null들어와도 감싸며반환 // 이렇게 반환하면 클라이언트가 활용할수있음. return Optional.ofNullable(store.get(id)); } @Override public Optional<Member> findByName(String name) { return store.values().stream() // *람다식.. store에서 루프돌면서 .filter(member -> member.getName().equals(name)) // getName해서 루프에서 name찾은거랑, .equals(name)해서 파라미터 name이랑 같은지 확인. .findAny(); //하나라도 찾으면 반환. // 그리고 이 결과가 Optional반환이므로 끝까지 돌려도 없으면 null포함되며 반환 } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); } public void clearStore() { store.clear(); // store를 싹 비워줌 } } package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.junit.Test; import org.junit.jupiter.api.AfterEach; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; public class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); //테스트 끝날때마다 리포짓토리를 지워주는 메서드(한번에 전체 실행시 에러발생날수 있으므로) // @AfterEach : 메서드 하나 끝날때마다 동작하도록하는..콜백함수 만들어줌 // 따라서 전체코드 실행시 save() -> afterEach() -> findByName() -> afterEach() ... 이런식으로 동작 @AfterEach public void afterEach() { repository.clearStore(); } @Test public void save() { Member member = new Member(); member.setName("spring"); //id는 자동으로 메겨지고 이름은 입력해줘야해서 setName함 repository.save(member); // save 잘됐는지 확인하기 위해 findById통해서 알아보기.(save할때 member.setId(++sequence) 통해서 id세팅함. 그래서 // findByid통해서 아이디를 통해 저장한거 잘 가져오는지 확인 Member result = repository.findById(member.getId()).get(); // ** get() 사용하는 이유? : optional한번 깐 다음 호출해줌 // member랑 result랑 같은지 확인. 둘다 member도 Member타입이고 result도 MemoryMemberRepository확인하면 // Member타입임을 알수있다.(*public Optional<Member> findById(Long id) {) --> 그래서 비교 가능 assertThat(member).isEqualTo(result); // 둘이 같은지 비교 } @Test public void findByName() { Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); Member result = repository.findByName("spring1").get(); assertThat(result).isEqualTo(member1); } @Test public void findAll() { Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); List<Member> result = repository.findAll(); assertThat(result.size()).isEqualTo(2);//save를 member1,member2 2개했으니까 size는 2어야.. } }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@SpringBootTest 인식이 안됩니다.
위에 화면과 같이 Test코드에서 Cannot resolve symbol 'SpringBootTest'오류가 발생합니다.SpringRunner또한 인식이 안되고요도와주세요
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
친구인가에서 Union&Find 알고리즘 질문있습니다.
Union 함수에서if (fa != fb) unf[fa] = fb; 해주는 부분이 있는데왜 unf[fb] = fa 를 쓰는 것과의 차이가 있을까요?다른 웹사이트에서 찾아보니깐 fa < fb 일때 unf[fb] = fa하고이외에는 unf[fa] = fb 를 해주는 방식을 채택하고 있길래궁금해서 질문드립니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
.
.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.에러코드가 다음글과 같이 뜨는데 어떤 점이 문제인가요?Error: Could not find or load main class hello.hellospring.HelloSpringApplicationCaused by: java.lang.ClassNotFoundException: hello.hellospring.HelloSpringApplicationProcess finished with exit code 1