외부 설정 쪽을 보고 있는데요. application.yml 에서 설정한 값을 safe 하게 사용하기 위한 코드인데요. 내부 클래스에 static 을 사용한 이유가 있을까요? @Data @ConfigurationProperties("my.datasource") public class MyDataSourcePropertiesV1 { private String url; private String username; private String password; private Etc etc = new Etc(); @Data public static class Etc { private int maxConnection; private Duration timeout private List<String> options = new ArrayList<>(); } }
위 사진과 같이 Build 가 자동으로 되도록 세팅을 변경하고 인텔리제이를 리부팅 해도 설정 적용이 잘 되지 않습니다. 코드를 변경 후 Shift + Command + F9 를 눌러 수동으로 Build 하지 않고 그냥 실행할 경우 변경사항이 제대로 적용되지 않은 채 코드가 실행이 됩니다. 해결 방법이 있을까요? 수동으로 Build 하면 잘 실행되는 것으로 보아 코드 문제는 아닌 것 같습니다...ㅠ
안녕하세요 강의 듣다가 문득 궁금한점이 생겨서 질문드립니다. ArticlePageResponse 클래스에 List<ArticleResponse> articles; 를 구성으로 하여 클래스를 생성해주셨는데 ArtlcieResponse를 상속하여 만들어진 ArticlePageResponse를 활용하여도 상관 없을까요?? 자바, 스프링을 동시에 공부하고 있다보니.. 주니어의 허접한 질문에 답변해주시면 감사드리겠습니다..
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. UsernameOnly 인터페이스 타입과 지네릭스 타입으로 결과는 문제 없이 동작하지만 UsernameOnlyDto 타입으로 결과 값을 받으려고 findProjectionsByUsername를 호출하면 type mismatch 오류가 생깁니다. Specified result type [study.datajpa.dto.UsernameOnlyDto] did not match Query selection type [study.datajpa.entity.Member] - multiple selections: use Tuple or array List<UsernameOnlyDto> result = memberRepository.findProjectionsByUsername("m1"); package study.datajpa.dto; public class UsernameOnlyDto { private final String username; public UsernameOnlyDto(String username) { this.username = username; } public String getUsername() { return username; } } // List<UsernameOnly> findProjectionsByUsername(@Param("username") String username); List<UsernameOnlyDto> findProjectionsByUsername(@Param("username") String username); <T> List<T> findProjectionsByUsername(@Param("username") String username, Class<T> type); org.springframework.orm.jpa.JpaSystemException: Specified result type [study.datajpa.dto.UsernameOnlyDto] did not match Query selection type [study.datajpa.entity.Member] - multiple selections: use Tuple or array at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:341) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:241) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:560) at org.springframework.dao.support .ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) at org.springframework.dao.support .DataAccessUtils.translateIfNecessary(DataAccessUtils.java:343) at org.springframework.dao.support .PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:160) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.data.jpa.repository.support .CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:136) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223) at jdk.proxy2/jdk.proxy2.$Proxy149.findProjectionsByUsername(Unknown Source) at study.datajpa.repository.MemberRepositoryTest.projections(MemberRepositoryTest.java:403) 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) Suppressed: org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only at org.springframework.transaction.support .AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:804) at org.springframework.transaction.support .AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:758) at org.springframework.test.context.transaction.TransactionContext.endTransaction(TransactionContext.java:135) at org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:272) at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:488) at org.springframework.test.context.junit.jupiter.SpringExtension.afterEach(SpringExtension.java:275) ... 2 more Caused by: org.hibernate.query.QueryTypeMismatchException: Specified result type [study.datajpa.dto.UsernameOnlyDto] did not match Query selection type [study.datajpa.entity.Member] - multiple selections: use Tuple or array at org.hibernate.query.sqm.internal.SqmUtil.throwQueryTypeMismatchException(SqmUtil.java:1272) at org.hibernate.query.sqm.internal.SqmUtil.verifyResultType(SqmUtil.java:1209) at org.hibernate.query.sqm.internal.SqmUtil.verifySelectionType(SqmUtil.java:1159) at org.hibernate.query.sqm.internal.SqmUtil.verifySingularSelectionType(SqmUtil.java:1114) at org.hibernate.query.sqm.internal.SqmUtil.checkQueryReturnType(SqmUtil.java:1088) at org.hibernate.query.sqm.internal.SqmUtil.checkQueryReturnType(SqmUtil.java:1049) at org.hibernate.query.sqm.internal.SqmUtil.validateQueryReturnType(SqmUtil.java:1040) at org.hibernate.query.sqm.tree.select .SqmSelectStatement.validateResultType(SqmSelectStatement.java:153) at org.hibernate.query.sqm.internal.QuerySqmImpl.<init>(QuerySqmImpl.java:240) at org.hibernate.internal.AbstractSharedSessionContract.createCriteriaQuery(AbstractSharedSessionContract.java:1483) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:1443) at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:143) 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:320) at jdk.proxy2/jdk.proxy2.$Proxy136.createQuery(Unknown Source)
ubuntu@ip-172-31-44-131:~$ docker run -d -p 8080:8080 kimoon515/neo Unable to find image 'kimoon515/neo:latest' locally latest: Pulling from kimoon515/neo docker: no matching manifest for linux/amd64 in the manifest list entries. See 'docker run --help'. 이런 에러가 발생되는데 어떻게 해야할가요?
안녕하세요! 강의 늘 잘 듣고 있습니다, 감사합니다. 다름이 아니고, Comment 테이블 관련한 질문인데요. 일전에 비슷한 경우를 보았는데, parentCommentId를 null로 둔걸 본 것 같습니다.(용량절약을 위한 목적이였다고 들었습니다) 혹시 최상위 자신의 commentId로 parentComentId를 지정한 부분에 대해 궁금해서 글 올리게 되었습니다. 감사합니다.
안녕하세요! 이번에 jooq를 도입하게 되어 강의를 보며 천천히 따라해보고 있습니다. 현재 Flyway + DDLDatabase(testcontainers 사용안함) 방식으로 dsl을 생성하는 것을 테스트하고 있는데요.. flyway migration 파일(.sql)에 프로시저와 함수 생성문을 넣고 코드 생성을 실행 하니 상용 버전을 이용하라고 메시지가 나오며 실행이 안되길래 공식 문서를 확인해보니 오픈소스 에디션에서는 지원을 하지 않는다고 되어있더군요 ㅠㅠ 섹션2 - 생성된 DSL 구조 살펴보기 강의에서는 DB 스캔 방식이지만 Routines 클래스가 잘 생성되는 것을 볼 수 있는데 혹 강사님께서는 시 상용 버전을 사용하신 걸까요?? 아니면 DB 스캔 방식은 상용 버전 상관없이 Routines 클래스가 생성이 되는 걸까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 스프링부트 톰캣 내부에 서블릿 컨테이너도 있고 스프링 컨테이너도 같이 존재하는 건가요? 그래서, API 호출이 오면 서블릿 컨테이너 내부의 DispatcherServlet이 스프링 컨테이너로 연결시켜서 컨트롤러 빈으로 매핑하도록 한다고 보면 될까요?