inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

fetch join alias

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

fetch join 시 alias를 사용해서 필터링하는게 왜 안되는걸까요? 이거에 대한 답변으로 디비상태와 객체상태의 일관성이 깨지게 됨을 보통 얘기하시는것같아요 alias를 사용해서 필터링해버리면 실제 디비에 있는 데이터보다 적은 개수가 나오게 되니까요. 근데 어차피 그 필터링된 결과만을 결과로 리턴해주어야한다면 사용해도 괜찮을 것 같은데 디비상태와 객체상태의 일관성이 깨지는게 왜 문제가될까요? 그래서 생각을 해봤는데 크게 다음인것같아요 - 유지관리어려울 수 있음 - 캐싱문제 근데 저 두 문제가 정말 큰 문제가 되는지를 잘 모르겠어요...; 유지관리 어려울수야 있겠지만 그렇게 까지 어려울지도 잘 모르겠고, 캐싱문제(쿼리결과캐싱)도 저 코드에 의해 영향이 얼마나 많이 갈지..도 잘 모르겠어요 저 유지관리/캐싱 문제가 아니라.. 2차캐시때문인가요? 예를들어서 team과 member가 일대다 연관이고 team을 select해온다는 sql이 있다고 가정 1. fetch join + on 절 : 디비에 있는 일부 데이터 불러옴 2. fetch join 만있어서 디비에있는 모든 데이터 불러옴 하나의 트랜잭션에서 1호출 뒤에 2를 호출하면 디비에 쿼리를 날리긴하지만 이미 team_id에 해당하는 객체가 영속성 컨텍스트에있어서 가져온거버림 그래서 추후에 문제가생길 수 있음 --- 인건가요?

  • java
  • jpa
김민지 댓글 2 좋아요 2 조회수 494

실습용 데이터 복원 에러

미해결

다양한 사례로 익히는 SQL 데이터 분석

데이터 복원 과정에서 에러가 발생하여 문의 드립니다. OS는 윈도우 11 사용하고 있구요, DBeaver는 23.1.5버전, Postgresql은 11.2.1 버전 사용하고 있습니다.

  • sql
  • postgresql
  • dbms/rdbms
  • 퍼포먼스-마케팅
  • 데이터-엔지니어링
hjkwon 댓글 3 좋아요 0 조회수 595

테스트용 데이터 추가하기 질문

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

테스트용 데이터를 추가하기 위해 아래와 같은코드를 만들었습니다. @Component @RequiredArgsConstructor public class TestDataInit { private final ItemService itemService; private final ItemRepository itemRepository; /** * 테스트용 데이터 추가 */ @PostConstruct public void init() { itemService.saveItem(new Book("김영한","츨핀시한빛")); itemService.saveItem(new Book("호날두","출판사멩구")); //오류 발생// itemRepository.save(new Book("a","출판사a")); itemRepository.save(new Book("b","출판사b")); } } 한번은 itemService를 이용하여 값을 넣었고 다른 한번은 itemRepository를 이용하여 값을 넣었습니다. 제 단순한 생각으로는 '어차피 itemService는 itemRepository에 바로 위임을하니 바로 itemRepository로 저장하자' 여서 실행했더니 localhost에서 연결을 거부했습니다. 오류가 나왔습니다. <질문> 왜 itemRepository로 저장하면 안되고 itemService로만 저장해야 데이터가 추가되는 지 궁금합니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
코딩먹는하마 댓글 3 좋아요 0 조회수 404

'(부록)MySQL(MariaDB)과 PostgreSQL에서 실행계획과 인덱스 사용 확인' 별첨은 어디에 있나요?

해결됨

SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법

(부록)MySQL(MariaDB)과 PostgreSQL에서 실행계획과 인덱스 사용 확인 편을 보고 있는데요 관련된 sample DB 만드는 법 등 안내된 자료는 어디서 볼 수 있는걸까요? 메모 같은 부분을 못 찾겠습니다. 답변 부탁 드립니다~

  • sql
  • dbms/rdbms
starbee 댓글 1 좋아요 0 조회수 491

수강 순서

미해결

[백문이불여일타] 데이터 분석을 위한 고급 SQL

고급반 들으려 하는데, ‘ 데이터 분석을 위한 SQL 실전편(무료 미니 코스)’는 고급반까지 다 듣고 수강하는 게 좋을까요?

  • sql
1018yearim 댓글 2 좋아요 0 조회수 311

Sql문 순서

미해결

[백문이불여일타] 데이터 분석을 위한 고급 SQL

SQL문을 작성하면 컴퓨터는 위에서부터 순서대로 읽는 게 아닌 것 같은데 진행순서가 어떻게 되나요? 그래서 테이블 이름 바꾸거나 별명 붙이는 데 순서에 따라 영향을 받을 수 있는지 궁금합니다!

  • sql
1018yearim 댓글 1 좋아요 0 조회수 359

더블콜론으로 데이터 형태 지정하기는 오라클에서는 사용이 안되나요?

미해결

데이터 분석 SQL Fundamentals

안녕하세요!! 선생님 덕분에 매일 새로운 지식을 배워가고 있는 직장인입니다. 회사에서 오라클을 사용하고 있는데 수업시간에 배운 ::text 형태가 너무 편할 것 같아서 써봤는데 Expected From 에러가 나네요.. 오라클에서는 사용이 불가한게 맞은건가요???

  • sql
  • postgresql
  • dbms/rdbms
lagren 댓글 1 좋아요 0 조회수 254

SELF JOIN 리트코드 문제풀이

미해결

[백문이불여일타] 데이터 분석을 위한 중급 SQL

SELECT Employee.Name AS Employee FROM Employee INNER JOIN Employee AS Manager On Employee.ManagerID = Manager.ID WHERE Employee.Salary > Manager.Salary 코드에서 저는 = Magnager.ManagerID라고 생각을 했는데 왜 저렇게 구문이 되는지 정확하게는 이해가 안가서 문의드려요. SELF-JOIN 시 교차점으로 해서 되는거 같은데 정확히는 이해가 안되네요 ㅜ

  • sql
David Lee 댓글 1 좋아요 0 조회수 322

사용자 이름 수정에서 막힙니다

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

강의 코드를 그대로 따라가고 있지는 않고 기존에 알고 있던 내용이랑 합쳐서 코드를 작성하고 있습니다. Controller @PutMapping("/user") public void updateUserName(@RequestBody UpdateUserDto updateDto) { userService.updateUserName(updateDto.getId(), updateDto.getName()); } Dto public class UpdateUserDto { private long id; private String name; public long getId() { return id; } public String getName() { return name; } Repository @Override public void updateUserName(long id, String name) { String sql = "update user set name = ? where id = ?"; jdbcTemplate.update(sql, name, id); } Service @Override public void updateUserName(long id, String name) { userRepository.updateUserName(id, name); } 수정을 눌렀을 때 name은 정상적으로 값이 넘어오는데 id가 계속 0으로 넘어옵니다,, 등록 시에는 DB에 id가 정상적으로 입력되고 있는데 뭐가 문제일까요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
hope 댓글 2 좋아요 1 조회수 456

postgresql 설치 오류

해결됨

데이터 분석 SQL Fundamentals

안녕하세요. 프로그램 설치시 하기 오류가 뜨는데요.. There has been an error : The enviromental variable COMSPEC does not seem to print to the cmd.exe or there is a trailling semicolon present. 인터넷 참조해서 방화벽도 없애보고 했는데 설치가 안되어서 글을 남깁니다. 배워볼려고 하는데 설치부터 안되니 답답합니다.

  • sql
  • postgresql
  • dbms/rdbms
zhonghao6020 댓글 1 좋아요 1 조회수 1377

Assertions 메서드 인자 순서

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 회원 리포지토리 테스트 케이스 작성 강의에서 assertEquals(A, B), assertThat(A).isEqualTo(B)에 대한 질문이 있습니다. 두가지 메서드 모두 A와 B의 순서가 크게 중요하지 않아보이는데 그런가요? 다르다면, 첫번째 메서드는 member를 앞에 넣으시고, 뒤에 메서드는 member1을 뒤에 넣으셨는데, 메서드를 어떻게 해석해야할까요? junit 문서를 찾아보아도 그런 설명이 없네요..

  • java
  • spring
  • mvc
  • spring-boot
nurugji 댓글 1 좋아요 2 조회수 845

통합 테스트 코드 - 회원가입() 메서드 에러 질문드립니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 16:47초에 실행하시는 통합테스트 코드 - 회원가입() 메서드 실행에서 에러가 납니다.. 에러 내용은 다음과 같습니다. could not prepare statement [Column "M1_0.USERNAME" not found; SQL statement: select m1_0.id,m1_0.username from member m1_0 where m1_0.username=? [42122-214]] [select m1_0.id,m1_0.username from member m1_0 where m1_0.username=?] org.hibernate.exception.SQLGrammarException: could not prepare statement [Column "M1_0.USERNAME" not found; SQL statement: select m1_0.id,m1_0.username from member m1_0 where m1_0.username=? [42122-214]] [select m1_0.id,m1_0.username from member m1_0 where m1_0.username=?] at app//org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert( SQLExceptionTypeDelegate.java:64 ) at app//org.hibernate.exception.internal.StandardSQLExceptionConverter.convert( StandardSQLExceptionConverter.java:56 ) at app//org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert( SqlExceptionHelper.java:108 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:187 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement( StatementPreparerImpl.java:76 ) at app//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.lambda$list$0( JdbcSelectExecutorStandardImpl.java:102 ) at app//org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery( DeferredResultSetAccess.java:226 ) at app//org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.getResultSet( DeferredResultSetAccess.java:163 ) at app//org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.advanceNext( JdbcValuesResultSetImpl.java:254 ) at app//org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.processNext( JdbcValuesResultSetImpl.java:134 ) at app//org.hibernate.sql.results.jdbc.internal.AbstractJdbcValues.next( AbstractJdbcValues.java:19 ) at app//org.hibernate.sql.results.internal.RowProcessingStateStandardImpl.next( RowProcessingStateStandardImpl.java:66 ) at app//org.hibernate.sql.results.spi.ListResultsConsumer.consume( ListResultsConsumer.java:198 ) at app//org.hibernate.sql.results.spi.ListResultsConsumer.consume( ListResultsConsumer.java:33 ) at app//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.doExecuteQuery( JdbcSelectExecutorStandardImpl.java:361 ) at app//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.executeQuery( JdbcSelectExecutorStandardImpl.java:168 ) at app//org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl.list( JdbcSelectExecutorStandardImpl.java:93 ) at app//org.hibernate.sql.exec.spi.JdbcSelectExecutor.list( JdbcSelectExecutor.java:31 ) at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.lambda$new$0( ConcreteSqmSelectQueryPlan.java:110 ) at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.withCacheableSqmInterpretation( ConcreteSqmSelectQueryPlan.java:303 ) at app//org.hibernate.query.sqm.internal.ConcreteSqmSelectQueryPlan.performList( ConcreteSqmSelectQueryPlan.java:244 ) at app//org.hibernate.query.sqm.internal.QuerySqmImpl.doList( QuerySqmImpl.java:518 ) at app//org.hibernate.query.spi.AbstractSelectionQuery.list( AbstractSelectionQuery.java:367 ) at app//org.hibernate.query.Query.getResultList( Query.java:119 ) at app//hello.hellospring.repository.JpaMemberRepository.findByName( JpaMemberRepository.java:33 ) at app//hello.hellospring.service.MemberService.validateDuplicateMember( MemberService.java:33 ) at app//hello.hellospring.service.MemberService.join( MemberService.java:27 ) at java.base@17.0.4.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@17.0.4.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:77 ) at java.base@17.0.4.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base@17.0.4.1/java.lang.reflect.Method.invoke( Method.java:568 ) at app//org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection( AopUtils.java:343 ) at app//org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint( ReflectiveMethodInvocation.java:196 ) at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:163 ) at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed( CglibAopProxy.java:756 ) at app//org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation( TransactionInterceptor.java:123 ) at app//org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction( TransactionAspectSupport.java:391 ) at app//org.springframework.transaction.interceptor.TransactionInterceptor.invoke( TransactionInterceptor.java:119 ) at app//org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:184 ) at app//org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed( CglibAopProxy.java:756 ) at app//org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept( CglibAopProxy.java:708 ) at app//hello.hellospring.service.MemberService$$SpringCGLIB$$0.join(<generated>) at app//hello.hellospring.service.MemberServiceIntegrationTest.회원가입( MemberServiceIntegrationTest.java:28 ) at java.base@17.0.4.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@17.0.4.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:77 ) at java.base@17.0.4.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base@17.0.4.1/java.lang.reflect.Method.invoke( Method.java:568 ) at app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod( ReflectionUtils.java:727 ) at app//org.junit.jupiter.engine.execution.MethodInvocation.proceed( MethodInvocation.java:60 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed( InvocationInterceptorChain.java:131 ) at app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept( TimeoutExtension.java:156 ) at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod( TimeoutExtension.java:147 ) at app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod( TimeoutExtension.java:86 ) at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0( InterceptingExecutableInvoker.java:103 ) at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0( InterceptingExecutableInvoker.java:93 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed( InvocationInterceptorChain.java:106 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed( InvocationInterceptorChain.java:64 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke( InvocationInterceptorChain.java:45 ) at app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke( InvocationInterceptorChain.java:37 ) at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke( InterceptingExecutableInvoker.java:92 ) at app//org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke( InterceptingExecutableInvoker.java:86 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7( TestMethodTestDescriptor.java:217 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod( TestMethodTestDescriptor.java:213 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:138 ) at app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:68 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:151 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base@17.0.4.1/java.util.ArrayList.forEach( ArrayList.java:1511 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at java.base@17.0.4.1/java.util.ArrayList.forEach( ArrayList.java:1511 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) at app//org.junit.platform.engine.support.hierarchical.Node.around( Node.java:137 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) at app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) at app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) at app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit( SameThreadHierarchicalTestExecutorService.java:35 ) at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute( HierarchicalTestExecutor.java:57 ) at app//org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute( HierarchicalTestEngine.java:54 ) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:107 ) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:88 ) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0( EngineExecutionOrchestrator.java:54 ) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams( EngineExecutionOrchestrator.java:67 ) at app//org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute( EngineExecutionOrchestrator.java:52 ) at app//org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:114 ) at app//org.junit.platform.launcher.core.DefaultLauncher.execute( DefaultLauncher.java:86 ) at app//org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute( DefaultLauncherSession.java:86 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses( JUnitPlatformTestClassProcessor.java:110 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000( JUnitPlatformTestClassProcessor.java:90 ) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop( JUnitPlatformTestClassProcessor.java:85 ) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop( SuiteTestClassProcessor.java:62 ) at java.base@17.0.4.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base@17.0.4.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:77 ) at java.base@17.0.4.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) at java.base@17.0.4.1/java.lang.reflect.Method.invoke( Method.java:568 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:36 ) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch( ReflectionDispatch.java:24 ) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch( ContextClassLoaderDispatch.java:33 ) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke( ProxyDispatchAdapter.java:94 ) at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run( TestWorker.java:193 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName( TestWorker.java:129 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:100 ) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute( TestWorker.java:60 ) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute( ActionExecutionWorker.java:56 ) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:113 ) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call ( SystemApplicationClassLoaderWorker.java:65 ) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run( GradleWorkerMain.java:69 ) at app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main( GradleWorkerMain.java:74 ) Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Column "M1_0.USERNAME" not found; SQL statement: select m1_0.id,m1_0.username from member m1_0 where m1_0.username=? [42122-220] at org.h2.message.DbException.getJdbcSQLException( DbException.java:514 ) at org.h2.message.DbException.getJdbcSQLException( DbException.java:489 ) at org.h2.message.DbException.get( DbException.java:223 ) at org.h2.message.DbException.get( DbException.java:199 ) at org.h2.expression.ExpressionColumn.getColumnException( ExpressionColumn.java:244 ) at org.h2.expression.ExpressionColumn.optimizeOther( ExpressionColumn.java:226 ) at org.h2.expression.ExpressionColumn.optimize( ExpressionColumn.java:213 ) at org.h2.command.query.Select .prepareExpressions( Select.java:1170 ) at org.h2.command.query.Query.prepare( Query.java:218 ) at org.h2.command.Parser.prepareCommand( Parser.java:583 ) at org.h2.engine.SessionLocal.prepareLocal( SessionLocal.java:634 ) at org.h2.server.TcpServerThread.process( TcpServerThread.java:288 ) at org.h2.server.TcpServerThread.run ( TcpServerThread.java:191 ) at java.base/java.lang.Thread.run( Thread.java:833 ) at app//org.h2.message.DbException.getJdbcSQLException( DbException.java:502 ) at app//org.h2.engine.SessionRemote.readException( SessionRemote.java:637 ) at app//org.h2.engine.SessionRemote.done( SessionRemote.java:606 ) at app//org.h2.command.CommandRemote.prepare( CommandRemote.java:78 ) at app//org.h2.command.CommandRemote.<init>( CommandRemote.java:50 ) at app//org.h2.engine.SessionRemote.prepareCommand( SessionRemote.java:480 ) at app//org.h2.jdbc.JdbcConnection.prepareCommand( JdbcConnection.java:1116 ) at app//org.h2.jdbc.JdbcPreparedStatement.<init>( JdbcPreparedStatement.java:92 ) at app//org.h2.jdbc.JdbcConnection.prepareStatement( JdbcConnection.java:288 ) at app//com.zaxxer.hikari.pool.ProxyConnection.prepareStatement( ProxyConnection.java:327 ) at app//com.zaxxer.hikari.pool.HikariProxyConnection.prepareStatement( HikariProxyConnection.java ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare( StatementPreparerImpl.java:91 ) at app//org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement( StatementPreparerImpl.java:177 ) ... 123 more Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended MemberServiceIntegrationTest > ȸ������() FAILED org.hibernate.exception.SQLGrammarException at MemberServiceIntegrationTest.java:28 Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException at MemberServiceIntegrationTest.java:28 2023-08-20T14:08:26.076+09:00 INFO 17356 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2023-08-20T14:08:26.079+09:00 INFO 17356 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2023-08-20T14:08:26.109+09:00 INFO 17356 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. 1 test completed, 1 failed > Task :test FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > There were failing tests. See the report at: file:///C:/Users/man25/OneDrive/����%20ȭ��/������%20����/hello-spring/build/reports/tests/test/index.html * 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 BUILD FAILED in 22s 4 actionable tasks: 1 executed, 3 up-to-date 아래 사진은 application.properties 디렉터리의 코드입니다. 아래 사진은 SpringConfig 클래스의 코드입니다. 해결 방법을 모르겠네요ㅠㅠㅠ

  • java
  • spring
  • mvc
  • spring-boot
김수환 댓글 4 좋아요 0 조회수 1589

LEETCODE CASE 문제 질문

미해결

[백문이불여일타] 데이터 분석을 위한 중급 SQL

SELECT id , SUM(CASE WHEN month = 'JAN' THEN revenue ELSE NULL END AS Jan_Revenue) , SUM(CASE WHEN month = 'FEB' THEN revenue ELSE NULL END AS Feb_Revenue) , SUM(CASE WHEN month = 'MAR' THEN revenue ELSE NULL END AS Mar_Revenue) , SUM(CASE WHEN month = 'APR' THEN revenue ELSE NULL END AS Apr_Revenue) , SUM(CASE WHEN month = 'MAY' THEN revenue ELSE NULL END AS May_Revenue) , SUM(CASE WHEN month = 'JUN' THEN revenue ELSE NULL END AS Jun_Revenue) , SUM(CASE WHEN month = 'JUL' THEN revenue ELSE NULL END AS Jul_Revenue) , SUM(CASE WHEN month = 'AUG' THEN revenue ELSE NULL END AS Aug_Revenue) , SUM(CASE WHEN month = 'SEP' THEN revenue ELSE NULL END AS Sep_Revenue) , SUM(CASE WHEN month = 'OCT' THEN revenue ELSE NULL END AS Oct_Revenue) , SUM(CASE WHEN month = 'NOV' THEN revenue ELSE NULL END AS Nov_Revenue) , SUM(CASE WHEN month = 'DEC' THEN revenue ELSE NULL END AS Dec_Revenue) FROM department GROUP BY id 해당 코드에 대해서 이해가 안가는 부분이 있어서 문의 드립니다. SELECT ID SUM(CASE WHEN MONTH = 'JAN' THEN REVENUE WHEN MONTH = 'FEB' THEN REVENUE WHEN MONTH = 'MAR' THEN REVENUE ELSE NULL END 이런 식으로 생각을 했는데요. AS가 REVENUE 뒤에 각각 들어갈 수 있는지와 이런 식으로 할 경우 어떤 부분에서 오류가 있는지 여쭤봅니다!

  • sql
David Lee 댓글 1 좋아요 0 조회수 378

Weather Observation Station 11_ not like 사용

미해결

[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이

문제에는 left, right, not in을 사용해주셨는데요, 처음에 제가 코드를 짰을 때는 Not LIKE로 사용했거든요. 틀렸다고 나오는데 잘 모르겠어서 질문드립니다. 자세하게 알려주시면 도움이 많이 될 것 같습니다. SELECT DISTINCT city FROM station WHERE lower(city) NOT LIKE '%[aeiou]' OR lower(city) NOT LIKE '[aeiou]%'

  • sql
HYUNCHAE JO 댓글 1 좋아요 0 조회수 282

offset 방식과 성능 질문

미해결

비전공자의 전공자 따라잡기 - 데이터베이스,SQL

안녕하세요 제로초님! 강의 재미있게 잘 듣고있습니다 :D offset 방식에 대해 질문이 있는데요, 게시물들이 많은 게시판의 경우 offset 방식처럼 보이는 페이지네이션이 적용되어있는 것을 많이 보았는데 offset 방식을 사용할경우 조회때문에 데이터가 많을 수록 성능 이슈가 발생한다고 말씀하셔서요, 이 방식과 동일하게 구현하면서 (게시물 신규등록 및 삭제시 보여지는 게시물 변동) 성능 이슈를 해결할 수 있는 방법도 존재하는지 궁금합니다!

  • sql
  • mysql
  • dbms/rdbms
  • mysql-workbench
키쿠 댓글 1 좋아요 0 조회수 381

analytic-sql과 상관 서브쿼리

해결됨

데이터 분석 SQL Fundamentals

안녕하세요 강의 열심히 듣고 있습니다. 감사드립니다. [서브쿼리 실습-02] 수업에 대해 질문이 있습니다. -- 상관 서브쿼리 select * from hr.emp_dept_hist_01 a where todate = ( select max (todate) from hr.emp_dept_hist_01 x where x.empno=a.empno); -- Analytic SQL select * from ( select *, row_number () over ( partition by empno order by todate desc ) as rnum from hr.emp_dept_hist_01 )a where rnum = 1; 위 두 가지 방법의 성능 차이에 대해 궁금합니다. (고객 데이터 분석 업무를 수행하고 있는데, 데이터가 커서 성능이 항상 이슈더라구요) 강의에서 말씀해주신대로, online 처리를 해야한다면 analytic-sql은 sorting을 해야하기 때문에 상관 서브쿼리가 더 성능이 좋을 것 같습니다. 강의에서 분석을 할 때는(배치로 처리할 때) analytic sql이 더 성능이 좋다고 하셨는데 그 이유는 무엇인가요??

  • sql
  • postgresql
  • dbms/rdbms
kkt719 댓글 1 좋아요 0 조회수 289

데이터베이스 설계에 대해 질문 드리고싶습니다

해결됨

데이터 분석 SQL Fundamentals

강사님 안녕하십니까. 강사님 머신러닝, 딥러닝 강의도 전부 듣고 책까지 산 수강생으로서, 항상 좋은 강의 해주셔서 감사하다는 말씀 먼저 드립니다. 이번 SQL 강의는 제가 최근 스프링 프레임 워크와 스프링 데이터 JPA 를 공부하는 과정에서 데이터 베이스에 관한 공부의 필요성을 느껴 수강하게 되었고 , 그 과정에서 강의에 사용되는 테이블에 대해 궁금증이 생겨 이렇게 질문을 작성하게 되었습니다. 본 SQL 강의에서 사용되는 데이터베이스에서는 몇몇 테이블이 식별 관계로 연결되어 연관된 테이블들의 PK를 복합 식별자로 갖도록 설계되어 있던데 , 실제 업무에서도 테이블 설계 방식이 이와 같은지 궁금합니다. 스프링 데이터 JPA 강의를 수강할 때, 해당 강의의 강사 분은 각 테이블을 비 식별 관계로 설계하여, 업무의 내용과 관계없는 독립적인 ID 칼럼을 생성하여 PK로 설정하는 것이 스프링 데이터 JPA 의 코드 복잡성을 줄이고 업무 관점에서도 테이블간의 의존성을 줄여 추후에 발생하는 문제를 어느 정도 예방할 수 있기 때문에 테이블을 비 식별 관계로 설계하는 것을 선호한다고 하였는데, 권철민 강사님은 테이블을 설계하실 때 식별 관계과 비 식별 관계를 어떠한 기준으로 선택하시는지 질문드리고싶습니다.

  • sql
  • postgresql
  • dbms/rdbms
tiger1303 댓글 1 좋아요 0 조회수 403

등록 시 질문

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

등록 id가 1번과 2번이 있었다가 2번을 삭제하고 다시 등록을 하면 id가 3번으로 등록이 됩니다. 제가 잘못한 걸까요..?? 아니면 혹시 원래 이렇게 돌아가도록 설정하신건가요??

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
qwe_e0606 댓글 2 좋아요 1 조회수 268

Top Earner MAX질문

미해결

[백문이불여일타] 데이터 분석을 위한 고급 SQL

SELECT * FROM ( SELECT name , MAX(months*salary) max_earnings FROM employee GROUP BY name ) total_earning ORDER BY max_earnings DESC 제가 위와 같이 쿼리를 작성했었는데요, 예상과는 다르게 모든 사람들의 earnings가 보여지고 MAX earning 하나만 보여지지는 않더라고요. 그 이유가 name 으로 GROUP BY 했기 때문인가요?

  • sql
김혜수 댓글 1 좋아요 0 조회수 270

Top Earner 풀 때 질문

미해결

[백문이불여일타] 데이터 분석을 위한 고급 SQL

SELECT * FROM ( SELECT name , months*salary FROM employee ) total_earnings -- 여기까지는 잘 나오는데 ORDER BY months*salary DESC--여기서 갑자기 1054(42S22) 오류 처음에 위와 같이 코드를 작성했는데 오류가 발생해서 다음과 같이 시도해봤는데요. 시도 1) SELECT * FROM ( SELECT name , months*salary FROM employee ) total_earnings ORDER BY employee.months*employee.salary DESC 각 months랑 salary가 어디 컬럼인지 명확한 것 같지 않아서 테이블을 employee로 지정하고 해줬는데 계속 오류가 뜨더라고요. 그래서 다음과 같이 다시 시도했는데 됐어요. 시도 2) SELECT * FROM ( SELECT name , months*salary earnings FROM employee ) total_earnings ORDER BY total_earnings.earnings DESC 여기 과정에서 질문이 생겼는데요!! 시도 1처럼 곱셈할 때 '테이블명.컬럼명' 하면 원래 적용이 안 되는 건가요? 서브쿼리 테이블명 지정할 때 alias 사용은 못하나요? 시도해봤는데 자꾸 에러가 떠서요!

  • sql
김혜수 댓글 1 좋아요 0 조회수 302

인기 태그

인프런 TOP Writers

주간 인기글