inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

member테이블은 생성됐는데 데이터가 안 들어옵니다...

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강사님 말씀대로 @Rollback(false)을 했음에도 불구하고 H2 데이터베이스에 member테이블은 생겼지만 데이터(행)는 생기지 않았습니다... 애초에 콘솔창에 Rollback 되었다는 구문도 뜨지 않고요... 어떻게 해야 할까요? <실행후 콘솔창> <실행 후 H2>

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
닉네임은비워둘수없어요 댓글 1 좋아요 0 조회수 433

초기 jpa-basic <dependencies> 오류 문의드립니다.

미해결

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

프로젝트 생성화면 영상에서 설명된 version 1.0.0을 어디서 선택하는지 모르겠음 초기 xml (수정전) 코드 추가버전 V_1 <dependencies></dependencies> 만 복붙 새로고침시 오류메세지 발생 * 8번째줄인 <version>1.0.0</version>으로 바꿔도 마찬가지임 코드 추가버전 V_2 전체복붙 동일한 오류 발생 Maven 번들3로 변경해도 오류는 그대로임 컴퓨터에 설치된 H2 -> v.1.4.193 참고로 H2에서 <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.199</version> </dependency> 버전을 최신으로 등록해봤을땐 H2는 오류메세지가 안뜨긴 함 (이것저것 시도하다가 발견) 안녕하세요. JPA 강의를 수강하려고 자바8버전으로 프로젝트를 생성했으나 위와 같은 오류가 발생하고 있습니다. 커뮤니티에 올라온 기존 답변내용대로 시도해봤으나 오류로 인해 강의진행이 어렵습니다. 빠른 확인을 부탁드립니다.

  • java
  • jpa
jihyeon4956 댓글 2 좋아요 1 조회수 1148

질문있습니다!!

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. try{ Child child1 = new Child(); Child child2 = new Child(); child1.setName("자식1"); child2.setName("자식2"); Parent parent = new Parent(); parent.setName("아빠"); parent.addChild(child1); parent.addChild(child2); em.persist(parent); em.flush(); em.clear(); System.out.println("parent = " + parent.getName()); tx.commit(); }catch (Exception e){ tx.rollback(); }finally { em.close(); } (영속성전이를 설정해둔 상태입니다 em.flush()하는 순간 insert쿼리가 3번나가고 clear()에서 영속성 컨텍스트를 초기화 하니까 아래 parent를 println으로 찍을 때 select쿼리가 나가야 할 것 같은데 따로 안나가고 그대로 아빠라는게 찍히는데 왜 이런걸까요? 이건 그냥 영속성컨텍스트와 무관한 객체의 값을 찍은걸까요?

  • java
  • jpa
vnfthr 댓글 1 좋아요 0 조회수 330

서버 재실행시 db데이터 리셋에 대해 궁금한점이있습니다.

해결됨

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

웹 계층 개발챕터 강의를 진행하고 있는 수강생입니다. 문득 궁금한점이 생겨 질문 남기게되었습니다. 코드를 작성하고 서버를 재실행하면 기존에 db에 넣어둔 데이터가 다 날아가고 없어지는게 서비스로직에 달려있는 @Transactional 어노테이션 때문인가요? 테스트코드에서의 @Trasactional 어노테이션의 경우 테스트데이터의 경우 테스트만 진행하고 테스트된 데이터는 db에 반영을 하지 않기위해서(Rollback) 사용한다고 알고있습니다. 그래서 원래 코드에서도 반영이 되지않는 이유가 서비스로직에 포함된 트랜잭션 어노테이션 때문인지 궁금하여 질문드립니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
skh990427 댓글 2 좋아요 0 조회수 391

회원 가입 model.addAttribute

해결됨

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

junit5 사용해서 회원 가입 작성하는데 코드 똑같이 작성했는데 오류가 나고 실행이 되지 않습니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
gg 댓글 1 좋아요 0 조회수 235

MyBatis 강의 올려주셔서 너무 감사드립니다ㅠㅠ (질문x)

미해결

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

안녕하세요 공부하는 개발자 최태현님! 너무너무 오랜만에 돌아와서 글 남겨보네요 ㅎㅎ 질문은 아니고 감사의 인사 드리고자 찾아왔어요 🌟 올해 초 쯔음 문의 드렸던 MyBatis 였는데, 이렇게 잊지 않으시고 강의에 업데이트 해주셨네요 ㅠㅠㅠ.. 역시 최고 👍👍 바쁘실텐데 좋은 내용 준비해주셔서 이번에도 많은 도움 되었어요!! 코린이 응애 시절, 태현님의 이 강의를 시작으로 개발 흐름을 이해하기 시작하며 재미붙이던때가 어제같은데,,, 지금은 어느덧 서비스 개발팀에 와서 인턴 생활 중이네요 :) 강의로 다시 뵐 수 있어 영광이었고, 항상 행복하시길 바라겠습니다 감사합니다 :)

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
jk s 댓글 1 좋아요 2 조회수 354

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

미해결

실전! 스프링 부트와 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 조회수 427

kafka jdbc source connector 설정시 db url을 찾을 수 없다고 하는데 질문드립니다.

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

마이크로서비스 양질의 내용을 수강중인 학생입니다. 지금 kafka source connector와 mariadb를 연결하는 과정에서 database url을 찾을 수 없다는 에러가 계속 발생중입니다. 혹시 동일한 현상을 해결하신 선배님이 계시거나, 아시는분의 도움을 얻고자 글 올립니다. 일단 db는 정상 실행되고 있습니다. url/user/password/table name까지의 정보는 완전 일치합니다. 증상은 아래와 같습니다. data source 생성 과정 source connector 상태 정보 url 정상 유무

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
etl74 댓글 1 좋아요 0 조회수 483

from절(QTeam.team)과 QMember.member차치

미해결

실전! Querydsl

강의 7분16초에서 List<Tuple> result = queryFactory .select( QTeam. team .name , QMember. member .age.avg()) .from(QMember.member) .join( QMember. member .team , QTeam. team ) .groupBy( QTeam. team .name ) .fetch(); 위 코드로 하면 성공하지만 List<Tuple> result = queryFactory .select( QTeam. team .name , QMember. member .age.avg()) .from( QTeam. team ) .join( QMember. member .team , QTeam. team ) .groupBy( QTeam. team .name ) .fetch(); 이렇게 코드를 작성하면 맨아래와 같은 에러가 발생합니다. 하지만 제가 H2에서 위 코드를 SQL로 바꾸면 아래와 같이 된다고 생각해서 select t.NAME , AVG(m.AGE) from Team t join Member m on m.TEAM _ID=t.ID group by t.NAME ; 이렇게 적어서 실행해보니 원하는 결과대로 잘 나오긴하는데 왜 Querydsl에서는 이러한 에러가 발생하는지 궁금합니다. ========================================org.hibernate.hql.internal.ast.InvalidPathException: Invalid path: ' member1.team ' at org.hibernate.hql.internal.ast.util.LiteralProcessor.lookupConstant( LiteralProcessor.java:111 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.ast.tree.DotNode.resolve( DotNode.java:218 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.ast.tree.FromReferenceNode.resolve( FromReferenceNode.java:114 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.ast.tree.FromReferenceNode.resolve( FromReferenceNode.java:109 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromJoinElement( HqlSqlWalker.java:411 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.joinElement( HqlSqlBaseWalker.java:4007 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement( HqlSqlBaseWalker.java:3793 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList( HqlSqlBaseWalker.java:3671 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause( HqlSqlBaseWalker.java:746 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query( HqlSqlBaseWalker.java:602 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement( HqlSqlBaseWalker.java:339 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement( HqlSqlBaseWalker.java:287 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze( QueryTranslatorImpl.java:276 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile( QueryTranslatorImpl.java:192 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile( QueryTranslatorImpl.java:144 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>( HQLQueryPlan.java:113 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>( HQLQueryPlan.java:73 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan( QueryPlanCache.java:162 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan( AbstractSharedSessionContract.java:636 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.internal.AbstractSharedSessionContract.createQuery( AbstractSharedSessionContract.java:748 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at org.hibernate.internal.AbstractSharedSessionContract.createQuery( AbstractSharedSessionContract.java:114 ) ~[ hibernate-core-5.6.10.Final .jar: 5.6.10.Final ] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) ~[na:na] at java.base/java.lang.reflect.Method.invoke( Method.java:566 ) ~[na:na] at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke( SharedEntityManagerCreator.java:311 ) ~[spring-orm-5.3.22.jar:5.3.22] at com.sun.proxy.$Proxy113.createQuery(Unknown Source) ~[na:na] at com.querydsl.jpa.impl.AbstractJPAQuery.createQuery( AbstractJPAQuery.java:132 ) ~[querydsl-jpa-5.0.0.jar:na] at com.querydsl.jpa.impl.AbstractJPAQuery.createQuery( AbstractJPAQuery.java:125 ) ~[querydsl-jpa-5.0.0.jar:na] at com.querydsl.jpa.impl.AbstractJPAQuery.fetch( AbstractJPAQuery.java:242 ) ~[querydsl-jpa-5.0.0.jar:na] at study.querydsl.QuerydslbasicTest.group ( QuerydslbasicTest.java:215 ) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) ~[na:na] at java.base/java.lang.reflect.Method.invoke( Method.java:566 ) ~[na:na] at org.junit.platform.commons.util.ReflectionUtils.invokeMethod( ReflectionUtils.java:725 ) ~[junit-platform-commons-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.execution.MethodInvocation.proceed( MethodInvocation.java:60 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed( InvocationInterceptorChain.java:131 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.extension.TimeoutExtension.intercept( TimeoutExtension.java:149 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod( TimeoutExtension.java:140 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod( TimeoutExtension.java:84 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0( ExecutableInvoker.java:115 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0( ExecutableInvoker.java:105 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed( InvocationInterceptorChain.java:106 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed( InvocationInterceptorChain.java:64 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke( InvocationInterceptorChain.java:45 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke( InvocationInterceptorChain.java:37 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke( ExecutableInvoker.java:104 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke( ExecutableInvoker.java:98 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7( TestMethodTestDescriptor.java:214 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod( TestMethodTestDescriptor.java:210 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:135 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute( TestMethodTestDescriptor.java:66 ) ~[junit-jupiter-engine-5.8.2.jar:5.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:151 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na] at org.junit.platform.engine.support .hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll( SameThreadHierarchicalTestExecutorService.java:41 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$6( NodeTestTask.java:155 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$8( NodeTestTask.java:141 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.Node.around( Node.java:137 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.lambda$executeRecursively$9( NodeTestTask.java:139 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.ThrowableCollector.execute( ThrowableCollector.java:73 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.executeRecursively( NodeTestTask.java:138 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at org.junit.platform.engine.support .hierarchical.NodeTestTask.execute( NodeTestTask.java:95 ) ~[junit-platform-engine-1.8.2.jar:1.8.2] at java.base/java.util.ArrayList.forEach( ArrayList.java:1541 ) ~[na:na]

  • java
  • jpa
aws5624 댓글 1 좋아요 1 조회수 603

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

미해결

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

강의 코드를 그대로 따라가고 있지는 않고 기존에 알고 있던 내용이랑 합쳐서 코드를 작성하고 있습니다. 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 조회수 468

SecurityConfig의 WebSecurityConfigurerAdapter 가 deprecated 되어 아래와 같이 코드를 수정하였는데 괜찮을까요?

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

안녕하세요 강의 잘 듣고 있습니다. 해당 수업을 들으면서 코드를 직접 작성을 하고 있었는데 SecurityConfig의 WebSecurityConfigurerAdapter 가 deprecated가 되어서 인식이 안됬습니다. 그래서 커뮤니티를 통해 어떤 오류가 났는지 다른 회원님의 글을 보고 알게 되어 해당 코드를 인용했음에도 오류가 발생하여 아래와 같이 코드를 수정을 했는데 괜찮을까요? package com.studyolle.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.servlet.util.matcher.MvcRequestMatcher; import org.springframework.security.web.util.matcher.RequestMatcher; import org.springframework.web.servlet.handler.HandlerMappingIntrospector; @Configuration //스프링 설정 클래스 @EnableWebSecurity //웹 보안 활성화, 웹 보안 설정 재정의 public class SecurityConfig { @Bean SecurityFilterChain filterChain(HttpSecurity http, HandlerMappingIntrospector introspector) throws Exception { RequestMatcher[] matchers = { new MvcRequestMatcher(introspector, "/"), new MvcRequestMatcher(introspector, "/login"), new MvcRequestMatcher(introspector, "/sign-up"), new MvcRequestMatcher(introspector, "/check-email"), new MvcRequestMatcher(introspector, "/check-email-token"), new MvcRequestMatcher(introspector, "/email-login"), new MvcRequestMatcher(introspector, "/check-email-login"), new MvcRequestMatcher(introspector, "/login-link"), new MvcRequestMatcher(introspector, "/profile/*") }; //보안 요청에 대한 권한 및 역활 설정 http.authorizeRequests() //배열에 있는 경로들에 대한 모든 요청을 허용 .requestMatchers(matchers).permitAll() //지저오딘 경로외의 모든 요청은 인증된 사용자만 접근할 수 있도록 함 .anyRequest().authenticated(); // POST에 대한 별도 조건을 설정하려면 추가 코드 필요 return http.build(); } }

  • java
  • spring
  • spring-boot
  • jpa
  • thymeleaf
양동우 댓글 2 좋아요 0 조회수 1150

"JPA 는 모든 엔티티에 일관된 방식으로 대리 키 사용을 권장한다" 에 대해 질문드립니다.

해결됨

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

안녕하세요. 책 144p 에 " JPA 는 모든 엔티티에 일관된 방식으로 대리 키 사용을 권장한다 비즈니스 요구사항은 계속해서 변하는데 테이블은 한 번 정의하면 변경하기 어렵다. 그런 면에서 외부 풍파에 쉽게 흔들리지 않는 대리 키가 일반적으로 좋은 선택이라 생각한다." 라는 내용이 있는데요. JPA 스펙이 이를 권장하는지의 여부가 궁금합니다. 위 문장이 "~라 생각한다." 라고 되어있어서, 이는 영한님의 생각이신건지 아니면 JPA 스펙에서 인용하신건지 헷갈려서 질문 드립니다.

  • jpa
cgkim449 댓글 3 좋아요 0 조회수 509

OrderItem 상태? 부모의 상태로 참고 가능?

미해결

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

안녕하세요 실전! 스프링부트와 JPA 활용 1편 강의를 수강 중인데요. 섹션6 주문도메인 개발 중 '주문, 주문상품 엔티티 개발' 강의에서 08:13쯤에 OrderItem에도 상태가 필요하다고 하셨는데 여기서 상태값은 무엇을 말하시는 걸까요? OrderStatus.CANCLE처럼 Enum형식의 상태값을 모아놓은 필드를 말씀하시는 건가요? 맞다면 어떤 상태값이 OrderItem에 들어갈수 있을까요? 주문취소 같은 건 Order에 들어가있고 어떤 값이 필요한지 모르겠습니다. 그리고 바로 그 말씀에 뒤이어 부모 상태로 참고가 가능하다고 하셨는데 어떤 부모의 상태를 말씀하시는 건지 모르겠습니다. 답변 부탁 드립니다.

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
u4458u 댓글 1 좋아요 0 조회수 369

답변해줘요.....................

미해결

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

답변해줘요.....................

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
김우철 댓글 2 좋아요 1 조회수 1005

리액트 웹 UI부분을 한글로 바꾸고 싶습니다

해결됨

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

src/main/resources/static/v1/static/js/main.d4f24480.js.map 웹 UI의 보여지는 버튼이라던가 클릭시 나오는 팝업창의 메세지를 한글에서 영어로 바꾸고 싶은데 위에 경로의 파일의 한글부분을 영어로 바꿔도 어플리케이션 실행에는 문제가 없을까요??? <Title>태그나 <Button Title>태그 한글부분을 영어로 바꿔봤는데 웹UI의 한글은 딱히 바뀌지는 않네요 음 너무 복잡하다면 굳이 안해도 되지만 혹시 바꿀수 있는 방법이 있나요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
윤수환 댓글 1 좋아요 1 조회수 270

롬복 에러

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. C:\study\jpashop\jpashop\src\main\java\jpabook\jpashop\JpashopApplication.java:10: error: <identifier> expected hello.setData("hello"); 이런 에러가 뜨는데 원인이 무엇일까요..?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
닉네임은비워둘수없어요 댓글 2 좋아요 1 조회수 876

강의 15분경 즉시로딩 실행결과 질문입니다.

미해결

실전! 스프링 데이터 JPA

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. MemberTest 테스트클래스 testEntity() 코드입니다. Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(teamA); em.persist(teamB); Member member1 = new Member("member1", 10, teamA); Member member2 = new Member("member2", 20, teamA); Member member3 = new Member("member3", 30, teamB); Member member4 = new Member("member4", 40, teamB); em.persist(member1); em.persist(member2); em.persist(member3); em.persist(member4); //초기화 em.flush(); em.clear(); List<Member> members = em.createQuery("select m from Member m ", Member.class) .getResultList(); for (Member member : members) { System.out.println("member = " + member); System.out.println("-> member.team = " + member.getTeam()); } 처음에 즉시로딩 실행결과로 멤버 조회 쿼리 하나랑 각각 팀 조회 쿼리 +N번 (여기서는 2번) 나가는 것을 확인했습니다. 지연로딩으로도 쿼리실행시점 문제만 다르지 똑같이 member.getTeam() 할때 team쿼리가 나가는 것을 확인했습니다. N+1문제를 해결하기 위해 페치조인을 한다는것은 강의와 학습을 통해 알게되었습니다. 질문이있는데요 처음에 즉시로딩할때 조인쿼리가 안나가고 왜 따로 member, team쿼리가 나간것일까요? 즉시로딩도 N+1문제가 발생하는것이 맞나요? 수정 단건조회 시 즉시로딩으로 left outer join 으로 member와 team이 함께 조회되는것을 확인했습니다. 단건조회가 아니라 memberRepository.findAll() 메소드나 JPQL (select m from Member m) 인경우에는 member와 team이 같은 한 쿼리가 아니라 따로 조회되는 것인가요? 왜 List를 조회할때에는 같이 join해서 쿼리를 날리지않는것일까요?

  • java
  • spring
  • spring-boot
  • jpa
김민지열심히해 댓글 2 좋아요 0 조회수 488

TEST 코드 내에서 발생하는 쿼리의 바인딩 되는 부분을 볼 수 있나요?

미해결

Practical Testing: 실용적인 테스트 가이드

안녕하세요. 강의를 듣다가 테스트를 하며 JPA에서 제공하는 쿼리가 제가 원하는 쿼리가 맞는지 확인함과 더불어 실제 들어가는 값이 제대로 들어가는지 알고 싶을 때가 존재하는데 이때 로그에서 확인할 수 있는 방법이 있을까요?

  • spring
  • jpa
  • 소프트웨어-테스트
  • junit5
ardimento22 댓글 1 좋아요 0 조회수 446

트랜잭션의 범위와 준영속 상태

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요 강의를 수강하다 제가 잘못 이해하고 있는 부분이 있는 것 같아서 질문드리게 되었습니다. 다음은 "간단한 주문 조회 V2: 엔티티를 DTO로 변환" 강의에서 35초에 해당하는 화면을 캡처한 부분입니다. orderRepository는 @PersistenceContext 처리된 EntityManager를 가지고 있는데 이 때 Transaction의 범위가 어디까지인지를 잘 모르겠습니다. 추측으로는 List<Order> all가 준영속상태로 반환될 것으로 예상했는데 order가 membe프록시 객체를 가지고 있다가 Lazy 강제 초기화가 가능한 것을 보면 영속성 컨텍스트가 여전히 존재하는 상태인 것 같습니다. Transaction의 범위가 어디까지인지 궁금합니다. 감사합니다.

  • java
  • spring
  • spring-boot
  • jpa
차성호 댓글 2 좋아요 1 조회수 437

인기 태그

인프런 TOP Writers

주간 인기글