묻고 답해요
163만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
jdbc template findById method
@Override public Optional<Item> findById(Long id) { String sql = "select id,item_name,price,quantity where id =?"; template.queryForObject(sql, ((rs,rowNum)->{ Item item = new Item(); item.setId(rs.getLong("id")); item.setItemName(rs.getString("item_name")); item.setPrice(rs.getInt("price")); item.setQuantity(rs.getInt("quantity")); return item; }),id); return Optional.empty(); } **람다식에 두번째 매개변수를 1로 바꾸면 안되는 이유가 궁금해요 sql를 보면 id가 primary key 이므로 당연히 1개의 데이터셋이 추출될건데 rowNum값을 왜 1로 두면 안될까요??
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
빌드가 안됩니다ㅜㅜ
강의 자료 코드 다운 받아서 실행하니깐 아래와 같이 나옵니다..사실 처음에 빌드 에러 발생했었는데 그건 영한님께서 항상 settings하시는대로 따라하니깐해결된 거 같은데, 이제는 아래와 같은 문제가 발생합니다ㅠ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
컬렉션의 초기화 유무의 따른 size의 값이 다르게 측정됩니다.
@Transactional public void increasePoint() { Store store1 = storeRepository.findById(1L).get(); Point point = new Point(1); // System.out.println("store1.getPoints().size() = " + store1.getPoints().size()); store1.add(point); store1.add(point); store1.add(point); store1.add(point); store1.add(point); System.out.println("store1.getPoints().size() = " + store1.getPoints().size()); }@OneToMany(mappedBy = "store",cascade = CascadeType.ALL) private List<Point> points = new ArrayList<>();Store(1):Point(N) 입니다. Store 내부에 양방향으로 List로 갖고있고 현재 디비에 Store ID 1번을 외래키로 갖고있는 Point가 이미 2개가 있습니다. 위에서 첫번째 디버그 출력문을 주석처리하고 add를 5번 진행 후 마지막에 검증하게 되면 DB에 2개 + 1개 해서 사이즈가 3으로 측정됩니다.하지만 위에서 주석처리를 제거하고 size()를 통해 초기화 이후에 add를 5번 진행하고 사이즈를 출력하면 DB2개 + 5개해서 7개가 출력됩니다. 위에 두가지 상황에서 왜 초기화를 먼저 진행하고 add하는것과 add이후에 초기화 하는것이 결과가 다른지 궁금합니다. 같은 객체를 여러번 add해도 실제 DB에 인서트 쿼리는 1번만 발생하게 됩니다(위에 두 가지 경우 모두) 짐작은 되지만 정확한 이해가 되지 않는데.. 같은 객체라 영속성컨텍스트에서 관리하게 되면 이후에것은 이미 관리하고 있으니 저장하지 않는것으로 이해하면 될까요?위에서 point객체가 영속성컨텍스트에 관리되기 시작하는 시점은 언제인가요? 최초의 add호출인가요?PersistentBag의 add를 봤을때 컬렉션이 초기화 되어있지않다면 다른 리스트에 넣어두고 초기화되면서 합쳐주는것으로 확인했는데 왜 5개를 다 넣어주지 않고 1개만 넣어주는지 궁금합니다. (디버깅과정에서 자동초기화 되서 정확하지 않습니다.)
-
해결됨쥬쥬와 함께 하루만에 시작하는 백엔드 - 스프링, 도커, AWS
pk, fk 연결
맛집 리뷰 서비스 만들어보는 부분 따라하고 있는데요궁금한점이 있어요. erd 보시면 맛집 id가 리뷰, 메뉴 테이블의 fk로 들어가 있잖아요그런데 코드단에서 이걸 연결해 주는 작업을 한 적이 없는 거 같은데h2에 생성된 디비에는 어떻게 연결이 되어있는 건가요?코드에서 이 작업을 해주는 부분이 어디인가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
java.lang.IllegalStateException: Failed to load ApplicationContext 오류가 납니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]여기에 질문 내용을 남겨주세요.다른 답변들을 보고 모두 따라해 봤는데 아무 소용 없었습니다. h2 콘솔로는 실행이 되고 접속도 다 됩니다 근데 test를 하면 자꾸 java.lang.IllegalStateException: Failed to load ApplicationContext 이 에러가 생깁니다. at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:98) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) 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:246) 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:190) 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:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)MVCC=TRUE 지우라고 한 답변들도 있어서 지우는데도 안되네요;;;
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
compile 시 에러
컴파일 시 아래와 같은 에러가 발생하는데 해결에 어려움이 있습니다. 도움부탁드립니다. "C:\Program Files\Java\jdk-11.0.17\bin\java.exe" -Dmaven.multiModuleProjectDirectory=D:\SpringPrj\cryptoWebService "-Dmaven.home=C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\plugins\maven\lib\maven3" "-Dclassworlds.conf=C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\plugins\maven\lib\maven3\bin\m2.conf" "-Dmaven.ext.class.path=C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\plugins\maven\lib\maven-event-listener.jar" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\lib\idea_rt.jar=49589:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\plugins\maven\lib\maven3\boot\plexus-classworlds-2.6.0.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2020.3.1\plugins\maven\lib\maven3\boot\plexus-classworlds.license" org.codehaus.classworlds.Launcher -Didea.version=2020.3.1 compile[INFO] Scanning for projects...[INFO] [INFO] ----------------------< com.studyolle:studyolle >-----------------------[INFO] Building studyolle 0.0.1-SNAPSHOT[INFO] --------------------------------[ jar ]---------------------------------[INFO] [INFO] --- apt-maven-plugin:1.1.3:process (default) @ studyolle ---[INFO] [INFO] --- frontend-maven-plugin:1.8.0:install-node-and-npm (install node and npm) @ studyolle ---[INFO] Installing node version v4.6.0[INFO] Unpacking C:\Users\sonth\.m2\repository\com\github\eirslett\node\4.6.0\node-4.6.0-win-x64.zip into D:\SpringPrj\cryptoWebService\src\main\resources\static\node\tmp[INFO] Copying node binary from D:\SpringPrj\cryptoWebService\src\main\resources\static\node\tmp\node-v4.6.0-win-x64\node.exe to D:\SpringPrj\cryptoWebService\src\main\resources\static\node\node.exe[INFO] Installed node locally.[INFO] [INFO] --- frontend-maven-plugin:1.8.0:npm (npm install) @ studyolle ---[INFO] Running 'npm install' in D:\SpringPrj\cryptoWebService\src\main\resources\static[INFO] npm WARN package.json static@1.0.0 No description[INFO] npm WARN package.json static@1.0.0 No repository field.[INFO] npm WARN package.json static@1.0.0 No README data[INFO] [INFO] --- maven-resources-plugin:3.2.0:resources (default-resources) @ studyolle ---[INFO] Using 'UTF-8' encoding to copy filtered resources.[INFO] Using 'UTF-8' encoding to copy filtered properties files.[INFO] Copying 2 resources[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time: 35.495 s[INFO] Finished at: 2023-10-31T22:25:42+09:00[INFO] ------------------------------------------------------------------------[ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources) on project studyolle: Input length = 1 -> [Help 1][ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionExceptionProcess finished with exit code 1
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
컨트롤러 부분만 컴포넌트 스캔을 하는 이유
서비스와 리포지토리는 빈등록을 수동으로 한 이유가 따로 있나요?? 공부차원에서 이렇게 하신건가요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
H2 데이터베이스 가 접속이 안되어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. Database "C:/Users/mukim/test" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-224] 90149/90149 (도움말)이렇게 나와요 뭘 어떻게 해야하나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
어플리케이션 재구동 시 H2 DB table 및 data가 유지되게 할 수 없나요?
메모리 기반으로 설정했다고 해서 어플리케이션 재구동 할 때마다 Table 및 Data가 날라가는 것으로 알고있습니다.그런데 개인적으로 공부하면서 여러가지 시도를 하다보면 기존 Data가 유지되었으면 좋겠습니다.김영한 강사님의 다른 기초 강의에서는 H2서버의 Data를 유지하도록 설정했었는데,이 강의에서는 설정을 어떻게 해야 Data가 유지되는지요?
-
미해결
JPA 복합키에 localdatetime 사용 시 조회 안되는 원인
db 는 tibero 입니다..테이블은 키가 date, varchar 타입이고엔티티는 localdatetime, string 타입인데,문제는 각각 컬럼으로 조회는 되지만, key 객체를 생성해서 findById를 하면 조회가 되질 않습니다.euquals, hashcode 추가 했고, 컨버터도 사용해봤지만 이 문제는 아닌 것 같습니다. 생성한 키KEY(inspDt=2023-10-31T12:19:04, inspId=INP0000001)전체 조회해서 확인 한 키KEY(inspDt=2023-10-31T12:19:04, inspId=INP0000001) 혹시나 해서 db 테이블 index를 nonunique로 바꾸니까 조회는 되는데,이럼 인덱스를 거는 이유가 없어지는거 같아 고민하다 글을 씁니다. 도저히 원인을 못찾겠네요 ㅜ
-
미해결실전! 스프링 데이터 JPA
fetch join 쿼리 질문 드립니당
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 페이징 처리를 하다가 갑자기 궁금해서(이전에 배웠는데 까먹은걸지도..모르겠네요) <질문> : @Query에서 페치 조인으로 팀을 가져왔는데, Team 엔티티에 있는 List<Members> members의 값은 왜 결과 쿼리에서 조회가 되지 않았는지 궁금합니다.패치조인을 하게 되면 member와 team의 모든 필드 값을 다 select 하게 되는거 아니였나요'? 맞다면 리스트 members도 가져와야 된다고 생각하는데 왜 안되는지 궁금하고, 가져올 수 있는 방법이 따로 있는 건지도 궁금합니다. @Query(value = "select m from Member m left join fetch m.team t", countQuery = "select count(m) from Member m")Page<Member> findByAge(int age, Pageable pageable); @Testpublic void paging(){//given memberRepository.save(new Member("member1", 10)); memberRepository.save(new Member("member2", 10)); memberRepository.save(new Member("member3", 10)); memberRepository.save(new Member("member4", 10)); memberRepository.save(new Member("member5", 10)); memberRepository.save(new Member("member6", 10)); int age = 10; PageRequest pageRequest = PageRequest.of(0, 3, Sort.by(Sort.Direction.DESC, "username")); //when Page<Member> page = memberRepository.findByAge(age, pageRequest); // PageRequest의 부모 인터페이스가 Page package study.datajpa.entity;import jakarta.persistence.*;import lombok.*;import java.util.ArrayList;import java.util.List;import static lombok.AccessLevel.PROTECTED;@Entity@Getter @Setter@NoArgsConstructor(access = PROTECTED)@ToString(of = {"id", "name"})public class Team {@Id @GeneratedValue @Column(name = "team_id")private Long id; private String name; @OneToMany(mappedBy = "team")private List<Member> members = new ArrayList<>(); public Team(String name) {this.name = name; }}
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPA 질문이요!
엔티티에서 컬럼 아이디를 idx로 했을 때 findById().get() 했을 때(기본 제공 메소드)는 중복키오류가 안나오는데 레포지토리에 findByIdx(int idx) 이렇게 만든걸 호출했을때는 중복키 오류가 생기는데 차이가 어떻게 생긴건지를 모르겠습니다...save()를 호출안하고 set만 했는데 DB에 객체가 바뀌어서 저장되서 이 부분도 원래 이렇게 되는게 맞는지 궁금합니다...
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
인스턴스 죽은게 대시보드에 표시가 안됩니다.
안녕하세요 수강하면서 질문이 있어 글을 남깁니다.4개의 서비스를 띄우고 작업하는 것을 해보고 있는데 서비스를 중지했음에도 대시보드에는 서버가 계속 남아있습니다.설정이 별로 없는데 적용이 안되는 이유가 혹시 있을까요?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
서버의 콘솔에 관련된 질문
강의 감사하게 잘 듣고 있습니다.궁금한게 있어서 문의드립니다.프로그램을 셋팅하고 서버를 start하면 이렇게 로그가 출력되면서 왼쪽 빌드창에 계속 뭐가 돌고 있는게 보이는데 이게 서버로 설정해놓아서 그런건가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티매핑 -실전예제에서 설정
h2 에서 url 에 jpa shop으로 만드려하는데 생성할수 없다고 에러가 뚭니다. Database "C:/Users/kjkkm/jpashop" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-224] 90149/90149 (도움말)
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
일대다 연관관계
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]일대다 연관관계가 업데이트 쿼리 나가는 게 아무래도 영속성 컨텍스트 기준으로 쿼리가 나가기 때문에 그런걸까요? 일단 테이블의 연관관계에서는 무조건 다 쪽이 외래키를 가지고 있기 때문에, JPA쪽에서도 그걸 알고 그냥 Member 먼저 insert 한 다음 id 가져와서 Address insert 하면서 같이 주면 효율적이지 않을까 하는데..뭔가 이 쓰기지연 SQL 저장소 여기 나가는 것도 알아서 최적화 되고 이런 게 있었던 거 같은데.. 아닌가.. 작동 방식이 차곡차곡 쌓여서 나중에 나간다 이렇게 알고 있긴 한데..address insert 하는 쿼리문들을 member insert하는 쿼리문 바로 뒤에 붙여버리면 좋지 않을까 하는데.. 이런 거 하나하나 다 따지기에는 너무 많은 케이스가 있고 영속성 컨텍스트 기준으로 나가기 때문에 그런건가요..?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
연관관계 편의 메서드 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 강의를 듣다가 헷갈리는 점이 생겨 질문드립니다연관관계 편의 메서드는 양방향 관계일때만 사용하면 되는지 궁금합니다만약에 연관관계 메서드를 사용하지 않아서 예를 들어 order엔티티에서 this.member = member만을 해주면 order테이블에는 member 정보가 들어가 있지만 member 테이블에는 order의 정보가 없고 null 상태인건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
변경감지와 병합 25:54초 부분 DB에 수정안됨
강사님 안녕하세요 ItemService updateItem 메서드에서 pk넣어서 아이템을 받아온 뒤 Item 객체에서 change 메서드만들고 Book 객체를 생성해서 받아온 값들을 넣었는데 DB에 인서트가 되지않습니다 @Transactinal 어노테이션도넣었고 값도 정상적으로 받아진거까지는 확인했습니다 하지만 DB에 인서트가 날라가지않습니다 BOOK이 그냥객체로 인식되서 JPA에서 인서트쿼리를 안날리는걸가요? 수정이 정상적으로 되게 insert 쿼리가 날라가려면 어떤부분을 고처야 할가요? 오랜시간 답을 못찾아서 질문 남깁니다. 감사합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
자바버전이요.
1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]지금 hello jpa-애플리케이션 개발 부분 공부하고 있는데요.hibernate.properties not found 이런 에러가 나옵니다.제가 좀 찾아보니. 자바 버전 문제인것같더라구요 저는 11버전을 쓰고 있습니다. 그럼 8버전으로 바까야 하는데, 환경변수까지 모두 바꿔야 하나요? 현재 제가 토이프로젝트하는건 모두 11로 되어있는상태라서요. 그리고 자바 버전을 바꿀 수 밖에 없는건가요? 11로 사용할 수 있는 방법은 없는지 궁금합니다.,
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
테이블을 못 찾습니다. ㅠㅠ
데이터베이스도 생성해주고 해당 테이블도 만들어주었으나 정보를 입력했을 때 해당 테이블을 찾지못해 내부 서버 오류가 발생합니다. 추가적으로 더 설정해줘야 하는 것이 있나요?아래 로그 첨부하겠습니다ㅠㅠjava.sql.SQLSyntaxErrorException: Table 'library.user' doesn't existat com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:121) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:916) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1061) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1009) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1320) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdate(ClientPreparedStatement.java:994) ~[mysql-connector-j-8.0.33.jar:8.0.33]at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61) ~[HikariCP-4.0.3.jar:na]at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java) ~[HikariCP-4.0.3.jar:na]at org.springframework.jdbc.core.JdbcTemplate.lambda$update$2(JdbcTemplate.java:973) ~[spring-jdbc-5.3.29.jar:5.3.29]at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:656) ~[spring-jdbc-5.3.29.jar:5.3.29]at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:968) ~[spring-jdbc-5.3.29.jar:5.3.29]at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1023) ~[spring-jdbc-5.3.29.jar:5.3.29]at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:1033) ~[spring-jdbc-5.3.29.jar:5.3.29]at com.group.libraryapp.controller.user.UserController.saveUser(UserController.java:37) ~[main/: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.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.29.jar:5.3.29]at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.29.jar:5.3.29]at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1072) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:965) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.29.jar:5.3.29]at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) ~[spring-webmvc-5.3.29.jar:5.3.29]at javax.servlet.http.HttpServlet.service(HttpServlet.java:555) ~[tomcat-embed-core-9.0.79.jar:4.0.FR]at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.29.jar:5.3.29]at javax.servlet.http.HttpServlet.service(HttpServlet.java:623) ~[tomcat-embed-core-9.0.79.jar:4.0.FR]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:209) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-9.0.79.jar:9.0.79]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.29.jar:5.3.29]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.29.jar:5.3.29]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.29.jar:5.3.29]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.29.jar:5.3.29]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-5.3.29.jar:5.3.29]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.29.jar:5.3.29]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:178) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:153) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1790) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-9.0.79.jar:9.0.79]at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]