묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
localhost 들어가면 계속 '사이트에 연결할 수 없음'이라고 나옵니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]http://localhost:8080으로 접속했는데 계속 '사이트에 연결할 수 없음'이라고 나오네요.인터넷에 찾아봤을 떄 포트번호가 오라클과 같이 사용하고 있어서 포트번호를 바꾸면 된다고 하길래Run > Edit Configurations... > Environment variables에 server.port=9090으로 바꿔서 해보기.제어판 > 관리도구 > 서비스 > OracleXETNSListener을 중지시키기.src > main > resources > static > application.properties 파일에 server.port=9090을 넣기.총 3가지 방법으로 시도를 해보았는데 다 안됩니다.포트 번호는 여러 숫자로 다양하게 해보았는데도 안되네요ㅠㅠ포트번호 바꿨을 때마다 run 다시 해서 포트번호 정상 출력되는거 확인하고 localhost 뒤에 포트 번호도 다 제대로 확인했었습니다..어떤 설정을 바꿔야지 정상적으로 되는지 모르겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
/members/new POST요청 관련
/members/new로 post요청할 때,아래 방법 처럼 form 데이터를 이전시간에 만들어놓은 Member 객체로 바로 받아서 사용할 수도 있는데 MemberForm을 따로 생성하고 Member객체를 인스턴스화 해서 사용하는 이유가 무엇인가요?DTO와 ENTITY를 나누어 사용하기 위함 일까요?@PostMapping("/members/new") public String create(Member form){ memberService.join(form); return "redirect:/"; }
-
미해결스프링 프레임워크는 내 손에 [스프2탄]
강사님 질문입니다!
저는 페이징과 검색위주로 보고자 이 강의를 구매하게되었습니다. 프로젝트 진행중이라서 게시판이나 답글은 많이 해봤어서 페이징으로 넘어가고싶은데.. 이럴려면 페이징 이전의소스가 필요해서요.. 프로젝트가 만히 급해서.. 혹시 회차별로 소스코드제공이 가능할까요? ㅠㅠ..
-
미해결실전! 스프링 데이터 JPA
Percictence Context에 대해 질문있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 현재 JPA에 대해 공부하고 있는 학생입니다. 현재 N+1에 대한 이슈를 테스트하는 중에 Entity의 생명주기에 대한 궁금점이 있어 질문을 남겼습니다.EntityManager 초기화 시 1차 캐시에 있는 Entity는 자동으로 Flush가 되나요?N+1 확인을 하기위해 모든 Entity를 저장한 후EntityManager를 초기화 시켜 1차 캐시를 초기화시켰습니다. 이유는 1차 캐시에 원하는 Entity가 존재한다면 해당 Entity를 DB를 거치지 않는다고 알고 있어서입니다.코드는 다음과 같습니다.@ExtendWith(SpringExtension.class) @DataJpaTest public class StudyRoomRepositoryTest { @Autowired private StudyRoomRepository studyRoomRepository; @Autowired private UserRepository userRepository; @PersistenceContext EntityManager em; private List<StudyRoom> studyRooms = new ArrayList<>(); private List<User> users = new ArrayList<>(); @BeforeEach public void setUp() { users.add(userRepository.save(User.builder().userUuid(UUID.randomUUID()).email("tester@gmail.com").password("password").nickName("tester").build())); users.add(userRepository.save(User.builder().userUuid(UUID.randomUUID()).email("tester2@gmail.com").password("password").nickName("tester2").build())); studyRooms.add( studyRoomRepository.save(StudyRoom.builder().roomName("TestStudyRoom1").constructor(users.get(0)).build())); studyRooms.add( studyRoomRepository.save(StudyRoom.builder().roomName("TestStudyRoom2").constructor(users.get(1)).build())); } @Test @DisplayName("users N+1 문제 Test") public void UsersNPlusOneTest(){ em.clear(); //EntityManager 초기화 List<StudyRoom> findStudyRooms = studyRoomRepository.findAll(); for(StudyRoom findStudyRoom: findStudyRooms){ System.out.println(findStudyRoom.getConstructor()); } } }예상대로 N+1 이슈에 대해 확인할 수 있었습니다. 하지만 궁금한점이 생겼습니다. 제가 알기로는 Save 메소드가 호출된다 해도 Transaction이 진행중이면 실제 DB에는 안 넘어가는것으로 알고있습니다. 또한 만약 DB로 넘기고 싶다면 Flush를 통해 넘길 수 있는 것으로 알고있습니다. 근데 저는 SaveAndFlush() 메소드가 아닌 Save() 메소드를 호출했음에도 불구하고 Select Query로그가 찍힙니다.Hibernate: select studyroom0_.study_room_id as study_ro1_1_, studyroom0_.create_at as create_a2_1_, studyroom0_.is_deleted as is_delet3_1_, studyroom0_.update_at as update_a4_1_, studyroom0_.user_id as user_id7_1_, studyroom0_.room_name as room_nam5_1_, studyroom0_.room_uuid as room_uui6_1_ from study_rooms studyroom0_ Hibernate: select user0_.user_id as user_id1_2_0_, user0_.create_at as create_a2_2_0_, user0_.is_deleted as is_delet3_2_0_, user0_.update_at as update_a4_2_0_, user0_.email as email5_2_0_, user0_.nick_name as nick_nam6_2_0_, user0_.password as password7_2_0_, user0_.role as role8_2_0_, user0_.user_uuid as user_uui9_2_0_ from users user0_ where user0_.user_id=? com.twoleader.backend.domain.user.entity.User@522fb69이유를 잘 모르겠습니다. 제 예상으로는 EntityManager의 clear()메소드 호출 시 1차 캐시 안에 Entity들이 존재한다면 자동으로 Flush()메소드가 호출되는 것으로 추측이 되는데 맞는지 여쭙고 싶습니다. 만약 아니라면 해당 데이터는 어디서 불러온것인지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
intelij 더 낮은 버전은 어떻게 다운 받나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의가 3년전 버전이라 지금과 맞지 않습니다.허나 intelij 사이트에서는 버전이 2.7.13이 제일 낮네요. 현재 강의에서 쓰는 2.3.1은 없습니다. 초반 2강에서 나오는 spring boot 다운받고 hello-spring에서 강사님과 같은 파일 실행하면 에러가 나오고 test파일은 실행은 되는 절반만 성공입니다.원래 3.1.1 버전 다운받을 때는 둘다 실행 안되었습니다. 이것 어떻게 해결하나요?아니면 최신 버전 유지하면서도 실행하는 방법 있나요?
-
미해결스프링 핵심 원리 - 기본편
스프링 웹 애플리케이션 실행 시 main 스레드 및 내장 톰캣
처음에 SpringApplication.run(UploadApplication.class, args); 실행하면main스레드에 의해서 스프링 컨테이너 및 웹서버 생성 등 작업을 완료하고 나면main 스레드는 listening 작업을 하나요? 어떤 상태가 되나요내장 톰캣이란 게 결국 스프링이 톰캣 라이브러리를 jar파일로 가지고 있다고 인지하면 될까요소켓 여는 라이브러리부터service로직 호출하는 org.apache.coyote.http11;필터를 호출하는 org.apache.catalina.core; 등이 WAS인가요?
-
해결됨스프링 부트 - 핵심 원리와 활용
4개의 서블릿 등록
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)아니오 [질문 내용]좋은 강의 감사드립니다! 동영상 5:35 초 쯤 3개의 서블릿이 등록되어있다고 말씀해주셨는데 정확히는 @WebServlet 애노테이션을 통한 TestServlet 등록이 있어서 4개의 서블릿이 등록되어있는 상태인 것 같습니다. ( 강의자료에도 TestServlet 이 포함되어 있는데 혹시 혼란이 생기시는 분들도 있을 수 있을 것 같아 질문으로 남기겠습니다!)
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
44강 mysql 접속중 문제가 있습니다.
강사님 안녕하세요.mysql에 mysql -u root -p 명령어를 통해 접속하고 그다음 비밀번호를 치려는데입력 자체가 안되고 엔터밖에 칠 수가 없더라구요.이런 문제가 왜 발생하는 걸까요?복사 붙여넣기 단축키, 키보드 타자 다 안됩니다.엔터만 쳐져서 계속 저런 상태입니다...
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
구현 클래스 없어도 CRUD의 기능을 사용할수 있디는 말의 의미
강의 에서 JpaRepository 인터페이스만 상속받으면 스프링 데이터 JPA가 프록시 기술을 사용해서 구현 클래스를 만들어준다. 그리고 만든 구현 클래스의 인스턴스를 만들어서 스프링 빈으로 등록한다. 따라서 개발자는 구현 클래스 없이 인터페이스만 만들면 기본 CRUD 기능을 사용할 수 있다.이 글의 뜻은 public class JpaItemRepositoryV2 implements ItemRepository { private final SpringDataJpaItemRepository repository; @Override public Optional<Item> findById(Long id) { return repository.findById(id);}}위 코드에서 findById의 구현 클래스가 없어도 인터페이스(SpringDataJpaItemRepository )만 만들면 기본 CRUD 기능을 사용할 수 있다. 라고 이해하면 될까요??
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
실무에서는 로그를 어떻게 사용하는지, 간단한 토이 프로젝트에서는 로그를 어떻게 사용하면 좋은지 궁금합니다.
실무에서는 로그를 어떻게 사용하는지 궁금합니다.간단한 토이 프로젝트에서는 로그를 어떻게 사용하면 좋은지 궁금합니다.감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
최신 날짜 기준으로 스타터에서 설정을 어떻게하면 될까요 ??
[질문 내용]최신 날짜 기준으로 스타터에서 설정을 어떻게하면 될까요 ??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
22강 jpa 오류 ㅠㅠ
22강 jpa 보면서 했는데 오류가 이렇게 나요 ㅠㅠ아래는 오류 내용 입니다 ㅠㅠOpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appendedjava.lang.IllegalArgumentException: org.hibernate.query.sqm.ParsingException: line 1:14 mismatched input 'Member' expecting {<EOF>, ',', FROM, GROUP, ORDER, WHERE}at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138)at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:162)at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:168)at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:795)at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:120)at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)at java.base/java.lang.reflect.Method.invoke(Method.java:578)at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:311)at jdk.proxy2/jdk.proxy2.$Proxy96.createQuery(Unknown Source)at hello.hellospring.repasitory.JpaMemberRepository.findByName(JpaMemberRepository.java:34)at hello.hellospring.service.MemberService.validateDuplicateMember(MemberService.java:37)at hello.hellospring.service.MemberService.join(MemberService.java:31)at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)at java.base/java.lang.reflect.Method.invoke(Method.java:578)at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)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:756)at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:391)at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:756)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708)at hello.hellospring.service.MemberService$$SpringCGLIB$$0.join(<generated>)at hello.hellospring.service.MemberServiceIntegrationTest.회원가입(MemberServiceIntegrationTest.java:35)at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)at java.base/java.lang.reflect.Method.invoke(Method.java:578)at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53)at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:57)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.hibernate.query.sqm.ParsingException: line 1:14 mismatched input 'Member' expecting {<EOF>, ',', FROM, GROUP, ORDER, WHERE}at org.hibernate.query.hql.internal.StandardHqlTranslator$1.syntaxError(StandardHqlTranslator.java:46)at org.antlr.v4.runtime.ProxyErrorListener.syntaxError(ProxyErrorListener.java:41)at org.antlr.v4.runtime.Parser.notifyErrorListeners(Parser.java:543)at org.antlr.v4.runtime.DefaultErrorStrategy.reportInputMismatch(DefaultErrorStrategy.java:327)at org.antlr.v4.runtime.DefaultErrorStrategy.reportError(DefaultErrorStrategy.java:139)at org.hibernate.grammars.hql.HqlParser.statement(HqlParser.java:361)at org.hibernate.query.hql.internal.StandardHqlTranslator.parseHql(StandardHqlTranslator.java:127)at org.hibernate.query.hql.internal.StandardHqlTranslator.translate(StandardHqlTranslator.java:77)at org.hibernate.internal.AbstractSharedSessionContract.lambda$interpretHql$2(AbstractSharedSessionContract.java:744)at org.hibernate.query.internal.QueryInterpretationCacheStandardImpl.createHqlInterpretation(QueryInterpretationCacheStandardImpl.java:141)at org.hibernate.query.internal.QueryInterpretationCacheStandardImpl.resolveHqlInterpretation(QueryInterpretationCacheStandardImpl.java:128)at org.hibernate.internal.AbstractSharedSessionContract.interpretHql(AbstractSharedSessionContract.java:741)at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:786)... 90 more
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
에러문의
강사님 하시는 대로 따라했는데 왜 이런 오류가 발생하는건가요 ㅠ?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
인텔리제이 -> 이클립스 연동 못 하나요?
제가 인텔리제이를 사용해 본 적이 없는데 강의를 보고 환경설정을 하자니 못 따라가는 부분이 너무 많아 이클립스로 진행하려고 합니다... 불가능할까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
rest일때만 무한 루프 도는 이유가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]그냥 컨트롤러에서 model에 담아서 조회할떄는 무한루프가 안도는데 json으로 반환할떄는 왜 무한로프 도는지가 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
연관관계 관련 질문입니다.
@Entity @Table(name = "ORDERS") @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Order { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "order_id", nullable = false) private Long id; @ManyToOne(fetch = FetchType.LAZY) //연관관계 주인 @JoinColumn(name = "user_id") private User user; @OneToMany(mappedBy = "order", cascade = CascadeType.ALL, orphanRemoval = true) private List<OrderItem> orderItems = new ArrayList<>(); @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "delivery_id") private Delivery delivery; //배송정보 @Enumerated(EnumType.STRING) private OrderStatus status; //ORDER, CANCEL private LocalDateTime orderDate;// 주문 날짜 public Order(User user) { this.user = user; } @Builder public Order(User user, Delivery delivery, OrderStatus status, LocalDateTime orderDate) { this.user = user; this.delivery = delivery; this.status = status; this.orderDate = orderDate; } //--- 양방향 연관관계 편의 메서드 ------// 편의메서드는 컨트롤 하는 쪽에 만들어주면 됨 // 다 쪽이 연관관계 주인으로 값 의 변경사항은 주인쪽에서 함 // 다 쪽이 set // 일쪽이 add public void setUser(User user) { this.user = user; user.getOrders().add(this); } public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this); } public void SetDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this); } }중 public void SetDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this); } 에서 연관관계 주인은 order 이면 delivery.setOrder(this); 해도 변경사항이 데이터베이스에 반영이 안되는 것 아냐?이것도 setUser() 와 동일하게 delivery.getOrder().add(this); 해야하는 거 아닌가요?? 헷갈리는게 연관관계 주인쪽에서만 변경사항이 데이터베이스에 반영되는것으로 알고 있는데 이 말의 정확한 예시가 궁금합니다.
-
해결됨Practical Testing: 실용적인 테스트 가이드
'외부 계층으로 분리한다'는 말이 궁금합니다.
강의에서 LocalDateTime.now()를 파라미터로 받게끔 해서 분리하는 걸 예시로 들어주셨는데요.'테스트하기 어려운 영역을 외부 계층으로 분리한다'는 말씀이 위 예시처럼 파라미터로 받게끔한다는 것인가요?외부 계층이라는 말이 잘 이해되지 않아서 질문드립니다! 테스트하기 어려운 메서드를 호출하는 상위 레벨의 메서드를 외부 계층이라고 하는 것일까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
앱 배포시 jar 질문
앱을 배포하는 도중 계속 에러가 나 질문 올립니다. plugins { id 'java' id 'org.springframework.boot' version '3.0.4' id 'io.spring.dependency-management' version '1.1.0' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-security' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.mysql:mysql-connector-j' implementation 'io.jsonwebtoken:jjwt-api:0.11.5' implementation 'io.jsonwebtoken:jjwt-impl:0.11.5' implementation 'io.jsonwebtoken:jjwt-jackson:0.11.5' implementation 'com.auth0:java-jwt:3.19.2' } tasks.named('test') { useJUnitPlatform() } 위와 같이 build.gradle 파일을 설정하였는데 ./gradlew build 시 아래와 같은 오류가 계속 뜹니다. * What went wrong:Execution failed for task ':bootJar'.> Entry META-INF/MANIFEST.MF is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.6.1/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.해결방법이 있을가요
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
springmvc패키지 안에 있는 v1,v2,v3에서는 왜 프론트 컨트롤러가 없어도 되는건지 궁금합니다.
앞 강의에서 frontcontroller 패키지에 있는 v1,v2,v3,v4,v5같은 경우에는 FrontControllerServletV5 이런식으로 프론트컨트롤러가 존재했는데 springmvc패키지 안에 있는 v1,v2,v3패키지에서는 왜 프론트 컨트롤러없이 단순히 컨트롤러만 존재해도 되는건지 궁금합니다.감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링 컨트롤러와 프론트 연동
목적이 스프링 컨트롤러를 작성하고 프론트와 서로 axios로 api를 주고 받아야 하는데 아직 dto가 뭔지도 모르겠고 포스트, 겟방식도 잘 다루지 못해요 무엇보다 협업이 되어야 하는게 주목적입니다.혹시 이 강의를 들으면 프론트의 값을 받는 dto까지 다 설명을 들을 수 있는 것인지 너무 궁금합니다.