44:45분 정도에 {"id":5,"name":"최길동","email":" choi@naver.com "} 테스트 하면 DB에 잘들어가는거로 강의는 되어 있는데, 저는 Row was already updated or deleted by another transaction for entity 이오류가 발생합니다. User.java에 @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; 이렇게 선언되어 있으면 {"id":5,"name" <- 이렇게 넣으면 insert가 아니라 update 구문이 실행되는거 아닌가요? 그래서 Row를 찾을수 없다고 오류가 나는것 같은데, 제가 강의중 놓친게 있는지 모르겠습니다. 확인 좀 부탁드릴께요! 감사합니다.
prisma 버전이 바뀌었는지 현재 강의대로 진행하면 13:15 부터 진행하는 서버 실행이 아래 오류 메시지 던지면서 불가능해집니다. 어떤 버전으로 다운그레이드 해야하는지, 혹은 어떻게 해결하면 되는지 확인 부탁드립니다. $ nest start file:///C:/Users/jw/Documents/GitHub/nest-js-core/dist/generated/prisma/client.js:38 Object.defineProperty(exports, "__esModule", { value: true }); ^ ReferenceError: exports is not defined in ES module scope at file:///C:/Users/jw/Documents/GitHub/nest-js-core/dist/generated/prisma/client.js:38:23 at ModuleJobSync.runSync (node:internal/modules/esm/module_job:436:37) at ModuleLoader.importSyncForRequire (node:internal/modules/esm/loader:427:47) at loadESMFromCJS (node:internal/modules/cjs/loader:1561:24) at Module._compile (node:internal/modules/cjs/loader:1712:5) at Object..js (node:internal/modules/cjs/loader:1895:10) at Module.load (node:internal/modules/cjs/loader:1465:32) at Function._load (node:internal/modules/cjs/loader:1282:12) at TracingChannel.traceSync (node:diagnostics_channel:322:14) at wrapModuleLoad (node:internal/modules/cjs/loader:235:24) Node.js v22.17.0 error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
질문있습니다! Controller에서 데이터를 클라이언트로부터 요청 받을 때 @RequestBody, @RequestParam, @PathVariable, Dto를 활용하는데, 어떤 경우로부터 클라이언트에게 데이터를 요청받았을 때 어떤 방식을 사용하는게 맞는지를 알고 싶습니다!
[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
스프링부트 2.7 버전에서 3.1 버전으로 올려다가 강의대로 이것저것 만져주고 다시 swagger 띄우려고 했더니 'Unable to infer base url 뭐시기' 뜨길래 인텔리제이 '파일' 메뉴에서 'Invalidate caches' 로 'Clear file system ...' 만 체크해서 재기동 한 뒤에 Gradle 이나 Maven 새로고침 하고 프로젝트 기동, ' http://localhost:8088/swagger-ui/index.html ' 페이지 요청 하니 제대로 나옵니다.
강의 내용에 대해 질문해 주세요 에러가 날 경우 본인 코드가 있는 git 주소를 알려주거나 최대한 상세히 적어주세요 ### Error querying database. Cause: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "ITEM" not found (this database is empty); SQL statement: 라는 에러가 나요
spring boot 3.4.3 버전 pom.xml 에러가 납니다 <!-- https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-starter-webmvc-ui --> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.8.5</version> </dependency> main 함수 run 실행시 아래왜 같은 에러가 나옵니다 Could not transfer artifact org.springdoc:springdoc-openapi-starter-webmvc-ui:pom:2.8.5 from/to central ( https://repo.maven.apache.org/maven2 ): 알려진 호스트가 없습니다 ( repo.maven.apache.org )
[오류내용] SERVICE에서 MAPPER까지 값은 1로 잘 넘어 오는데 MAPPER에서 XML로 넘어가는 부분에서 오류가 납니다. [오류 SCRIPT] 2024-05-23T12:14:49.232+09:00 INFO 5380 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms 2024-05-23T12:14:49.272+09:00 INFO 5380 --- [nio-8080-exec-1] c.h.fitstStart.service.QuickService : 111111 ...1 2024-05-23T12:14:49.275+09:00 ERROR 5380 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.helloword.fitstStart.mapper.QuickMapper.findById] with root cause org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.helloword.fitstStart.mapper.QuickMapper.findById at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>( MapperMethod.java:229 ) ~[mybatis-3.5.14.jar:3.5.14]
안녕하세요? 강의 내용이 너무 좋아서 빠져서 듣고 있습니다. 그런데 mybatis연결 과정에서 QuickMapper interface와 xml연결하는 부분 수업 중에 아래와 같은 에러가 발생했습니다. 에러 내용만 보면 Service 에서 QuickMapper를 @Autowired하는 부분부터 문제가 생기는 것 같은데 해결방법을 모르겠습니다. 현재 에러가 나는 상태로 git에 소스 올려두었습니다. https://github.com/ljpson/quickstart.git 에러 내용은 아래와 같습니다. 2024-04-03T11:20:24.392+09:00 WARN 74964 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'quickController': Unsatisfied dependency expressed through field 'quickService': Error creating bean with name 'quickService': Unsatisfied dependency expressed through field 'quickMapper': No qualifying bean of type 'com.helloworld.quickstart.mapper.QuickMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 2024-04-03T11:20:24.395+09:00 INFO 74964 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] 2024-04-03T11:20:24.404+09:00 INFO 74964 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2024-04-03T11:20:24.418+09:00 ERROR 74964 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Field quickMapper in com.helloworld.quickstart.service.QuickService required a bean of type 'com.helloworld.quickstart.mapper.QuickMapper' that could not be found. The injection point has the following annotations: - @org.springframework.beans.factory.annotation.Autowired(required=true) Action: Consider defining a bean of type 'com.helloworld.quickstart.mapper.QuickMapper' in your configuration. Process finished with exit code 1
안녕하세요! 강의 잘듣고있습니다! 마이바티스 설정관련 parameter를 1개임에도 불구하고 HashMap으로 감싸서 보내는데 원래 마이바이스트 매개변수 넘길때 보통 해쉬맵으로 감싸서 보내나요? 또한가지 만약 넘겨줄 매개변수가 Object 타입 (id,username....), String 타입 2가지 혹은 그 이상인 경우에도 해쉬맵에 Object도 매핑해서 보내준 후 #{objec명.필드명} 이런식으로 빼쓰나요?
[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
Spring 3 이상부터는 더 이상 Springfox가 아닌 SpringDoc으로 해야 Swagger 설정을 해줄 수 있습니다. 자세한 내용은 제가 참조한 아래 레퍼런스 확인해보시면 좋을 거 같아요 https://springdoc.org/ https://colabear754.tistory.com/99 https://velog.io/@kjgi73k/Springboot3%EC%97%90-Swagger3%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0 아래는 참고하여 작성한 코드입니다. @Configuration public class SwaggerConfig { @Bean public OpenAPI openAPI(){ return new OpenAPI() .components(new Components()) .info(apiInfo()); } private Info apiInfo() { return new Info() .title("Springdoc 테스트") .description("Springdoc을 사용한 Swagger UI 테스트") .version("1.0.0"); } } @RestController @RequestMapping("/swagger") public class SwaggerController { @Operation(summary = "문자열 반복", description = "파라미터로 받은 문자열을 2번 반복합니다.") @Parameter(name = "str", description = "2번 반복할 문자열") @GetMapping("/returnStr") public String returnStr(@RequestParam String str) { return str + "\n" + str; } @GetMapping("/example") public String example() { return "예시 API"; } @Hidden @GetMapping("/ignore") public String ignore() { return "무시되는 API"; } } NOTE: springdoc.swagger-ui.path 에서 swagger url 기본 경로를 설정합니다. 저는 아래와 같이 /swagger로 접속하게끔 했습니다. # SPRINGDOC springdoc.packages-to-scan=com.example.dateanu.rest_api springdoc.default-consumes-media-type= application/json;charset=UTF-8 springdoc.default-produces-media-type= application/json;charset=UTF-8 springdoc.swagger-ui.path=/swagger springdoc.swagger-ui.disable-swagger-default-url=true springdoc.swagger-ui.display-request-duration=true springdoc.swagger-ui.operations-sorter=alpha
swagger 의존성 추가하고 똑같이 코드 작성했는데 오류가 납니다 java.lang.IllegalStateException: Failed to introspect Class [kr.co.songjava.configuration.SwaggerConfiguration] from ClassLoader [org.springframework.boot.devtools.restart.classloader.RestartClassLoader@36fd7761] at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:485) ~[spring-core-5.3.22.jar:5.3.22] at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:361) ~[spring-core-5.3.22.jar:5.3.22] at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:418) ~[spring-core-5.3.22.jar:5.3.22] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.lambda$getTypeForFactoryMethod$2(AbstractAutowireCapableBeanFactory.java:765) ~[spring-beans-5.3.22.jar:5.3.22] at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1688) ~[na:1.8.0_291] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:764) ~[spring-beans-5.3.22.jar:5.3.22] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:703) ~[spring-beans-5.3.22.jar:5.3.22] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:674) ~[spring-beans-5.3.22.jar:5.3.22] at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1670) ~[spring-beans-5.3.22.jar:5.3.22] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:570) ~[spring-beans-5.3.22.jar:5.3.22] at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:542) ~[spring-beans-5.3.22.jar:5.3.22] at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:669) ~[spring-beans-5.3.22.jar:5.3.22] at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:661) ~[spring-beans-5.3.22.jar:5.3.22] at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1300) ~[spring-context-5.3.22.jar:5.3.22] at org.springframework.boot.SpringApplication.getExitCodeFromMappedException(SpringApplication.java:867) [spring-boot-2.7.3.jar:2.7.3] at org.springframework.boot.SpringApplication.getExitCodeFromException(SpringApplication.java:855) [spring-boot-2.7.3.jar:2.7.3] at org.springframework.boot.SpringApplication.handleExitCode(SpringApplication.java:842) [spring-boot-2.7.3.jar:2.7.3] at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:782) [spring-boot-2.7.3.jar:2.7.3] at org.springframework.boot.SpringApplication.run(SpringApplication.java:318) [spring-boot-2.7.3.jar:2.7.3] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) [spring-boot-2.7.3.jar:2.7.3] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) [spring-boot-2.7.3.jar:2.7.3] at kr.co.songjava.ExampleSpringApplication.main(ExampleSpringApplication.java:10) [classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_291] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_291] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_291] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_291] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-2.7.3.jar:2.7.3] Caused by: java.lang.NoClassDefFoundError: springfox/documentation/spring/web/plugins/Docket at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_291] at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_291] at java.lang.Class.getDeclaredMethods(Class.java:1975) ~[na:1.8.0_291] at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:467) ~[spring-core-5.3.22.jar:5.3.22] ... 26 common frames omitted Caused by: java.lang.ClassNotFoundException: springfox.documentation.spring.web.plugins.Docket at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_291] at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_291] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) ~[na:1.8.0_291] at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_291] at java.lang.Class.forName0(Native Method) ~[na:1.8.0_291] at java.lang.Class.forName(Class.java:348) ~[na:1.8.0_291] at org.springframework.boot.devtools.restart.classloader.RestartClassLoader.loadClass(RestartClassLoader.java:145) ~[spring-boot-devtools-2.7.3.jar:2.7.3] at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[na:1.8.0_291] ... 30 common frames omitted 오류 코드가 이렇게 나오는데 어느부분이 문제일까요?? 부트는 2.4.0버전이고 swagger 2.9.2입니다
swagger를 위한 정보를 decorator를 통해 추가하다보면 ApiOperation 뿐만 아니라 ApiBody, ApiResponse 등 다양한 decorator가 추가되고 이에 대한 인자를 객체로 만들어서 넣어주는 과정에서 코드가 굉장히 지저분해지고, decorator에 들어가는 객체들에 대한 정보 관리가 어려워 지는 거 같습니다 . 이런 경우에 커스텀 데코레이터를 만들어서 하나로 합쳐서 사용하고 싶은데 이러한 커스텀 테코레이터에 대해서 간단하게 작성방법을 강의영상으로 추가해주실 수 있을 지 문의 드립니다.