반응형

2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] kr.co.cjons.frame.dao.AbstractDao -   QueryId   :  common.updateSql
2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] org.mybatis.spring.SqlSessionUtils - Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7e3594ef] from current transaction
2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] common.updateSql - ==>  Preparing: UPDATE mdm_alarm SET alarm_type_cd = 'ALARM_ENV' ,alarm_content = '[Farm N] 본인확인 인증번호는 ? 입니다' ,alarm_template_cd = '' ,use_yn = 'Y' ,alarm_id = 'ALARM_009' ,alarm_template_content = '' ,alarm_nm = '9' ,action_yn = 'N' ,tx_type_cd = 'U' , evt_nm = '/AlarmRule/saveAlarms' ,evt_user_id = 'poorhearte' ,evt_dt = to_timestamp('20240208152714', 'YYYYMMDDHH24MISS') ,tx_id = '884d0213-d06c-4fe0-9aab-b5b7937c070a' ,hist_key = '4efdaf7e-ad17-4ebb-9b18-fa43b8fbd8a3' WHERE alarm_id = 'ALARM_009'
2024-02-08 15:27:14 [http-nio-8007-exec-9] [ERROR] jdbc.sqltiming - 51. PreparedStatement.setNull(1, 1111)
org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
at org.postgresql.jdbc.PgPreparedStatement.setNull(PgPreparedStatement.java:192)
at net.sf.log4jdbc.sql.jdbcapi.PreparedStatementSpy.setNull(PreparedStatementSpy.java:266)
at cohttp://m.zaxxer.hikari.pool.HikariProxyPreparedStatement.setNull(HikariProxyPreparedStatement.java)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:67)
at cohttp://m.sun.proxy.$Proxy117.setNull(Unknown Source)
at org.apache.ibatis.type.BaseTypeHandler.setParameter(BaseTypeHandler.java:65)
at org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters(DefaultParameterHandler.java:87)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:94)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:64)
at org.apache.ibatis.executor.BatchExecutor.doUpdate(BatchExecutor.java:71)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)
at jdk.internal.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
at cohttp://m.sun.proxy.$Proxy113.update(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:287)
at kr.co.cjons.frame.dao.AbstractDao.update(AbstractDao.java:45)
at kr.co.cjons.frame.dao.CommonDao.update(CommonDao.java:119)
at kr.co.cjons.frame.dao.CommonDao$$FastClassBySpringCGLIB$$47233cce.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)
at kr.co.cjons.frame.dao.CommonDao$$EnhancerBySpringCGLIB$$8c6a35a7.update(<generated>)
at kr.co.cjons.frame.dao.CrudUtils.update(CrudUtils.java:346)
at kr.co.cjons.frame.dao.CrudUtils.execGridBatch(CrudUtils.java:1142)
at kr.co.cjons.ruleService.mdm.AlarmRule.saveAlarms(AlarmRule.java:35)
at kr.co.cjons.ruleService.mdm.AlarmRule$$FastClassBySpringCGLIB$$8c31b3e4.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)
at kr.co.cjons.ruleService.mdm.AlarmRule$$EnhancerBySpringCGLIB$$b2c78ea8.saveAlarms(<generated>)
at jdk.internal.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at kr.co.cjons.controller.RestApiController.callRule(RestApiController.java:170)
at jdk.internal.reflect.GeneratedMethodAccessor123.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] org.mybatis.spring.SqlSessionUtils - Releasing transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7e3594ef]
2024-02-08 15:27:14 [http-nio-8007-exec-9] [ERROR] kr.co.cjons.frame.dao.CrudUtils - nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='인증번호', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='인증번호', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
at cohttp://m.sun.proxy.$Proxy113.update(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:287)
at kr.co.cjons.frame.dao.AbstractDao.update(AbstractDao.java:45)
at kr.co.cjons.frame.dao.CommonDao.update(CommonDao.java:119)
at kr.co.cjons.frame.dao.CommonDao$$FastClassBySpringCGLIB$$47233cce.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)
at kr.co.cjons.frame.dao.CommonDao$$EnhancerBySpringCGLIB$$8c6a35a7.update(<generated>)
at kr.co.cjons.frame.dao.CrudUtils.update(CrudUtils.java:346)
at kr.co.cjons.frame.dao.CrudUtils.execGridBatch(CrudUtils.java:1142)
at kr.co.cjons.ruleService.mdm.AlarmRule.saveAlarms(AlarmRule.java:35)
at kr.co.cjons.ruleService.mdm.AlarmRule$$FastClassBySpringCGLIB$$8c31b3e4.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)
at kr.co.cjons.ruleService.mdm.AlarmRule$$EnhancerBySpringCGLIB$$b2c78ea8.saveAlarms(<generated>)
at jdk.internal.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at kr.co.cjons.controller.RestApiController.callRule(RestApiController.java:170)
at jdk.internal.reflect.GeneratedMethodAccessor123.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='인증번호', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
at org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters(DefaultParameterHandler.java:89)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:94)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:64)
at org.apache.ibatis.executor.BatchExecutor.doUpdate(BatchExecutor.java:71)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)
at jdk.internal.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
... 124 more
Caused by: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
at org.apache.ibatis.type.BaseTypeHandler.setParameter(BaseTypeHandler.java:67)
at org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters(DefaultParameterHandler.java:87)
... 134 more
Caused by: org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
at org.postgresql.jdbc.PgPreparedStatement.setNull(PgPreparedStatement.java:192)
at net.sf.log4jdbc.sql.jdbcapi.PreparedStatementSpy.setNull(PreparedStatementSpy.java:266)
at cohttp://m.zaxxer.hikari.pool.HikariProxyPreparedStatement.setNull(HikariProxyPreparedStatement.java)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:67)
at cohttp://m.sun.proxy.$Proxy117.setNull(Unknown Source)
at org.apache.ibatis.type.BaseTypeHandler.setParameter(BaseTypeHandler.java:65)
... 135 more
2024-02-08 15:27:14 [http-nio-8007-exec-9] [ERROR] k.co.cjons.ruleService.mdm.AlarmRule - nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='인증번호', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] org.mybatis.spring.SqlSessionUtils - Transaction synchronization deregistering SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7e3594ef]
2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] org.mybatis.spring.SqlSessionUtils - Transaction synchronization closing SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7e3594ef]
2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] o.s.j.d.DataSourceTransactionManager - Initiating transaction rollback
2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] o.s.j.d.DataSourceTransactionManager - Rolling back JDBC transaction on Connection [HikariProxyConnection@1944485347 wrapping net.sf.log4jdbc.sql.jdbcapi.ConnectionSpy@6f83c55b]
2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] o.s.j.d.DataSourceTransactionManager - Releasing JDBC Connection [HikariProxyConnection@1944485347 wrapping net.sf.log4jdbc.sql.jdbcapi.ConnectionSpy@6f83c55b] after transaction
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='인증번호', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)
at cohttp://m.sun.proxy.$Proxy113.update(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:287)
at kr.co.cjons.frame.dao.AbstractDao.update(AbstractDao.java:45)
at kr.co.cjons.frame.dao.CommonDao.update(CommonDao.java:119)
at kr.co.cjons.frame.dao.CommonDao$$FastClassBySpringCGLIB$$47233cce.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)
at kr.co.cjons.frame.dao.CommonDao$$EnhancerBySpringCGLIB$$8c6a35a7.update(<generated>)
at kr.co.cjons.frame.dao.CrudUtils.update(CrudUtils.java:346)
at kr.co.cjons.frame.dao.CrudUtils.execGridBatch(CrudUtils.java:1142)
at kr.co.cjons.ruleService.mdm.AlarmRule.saveAlarms(AlarmRule.java:35)
at kr.co.cjons.ruleService.mdm.AlarmRule$$FastClassBySpringCGLIB$$8c31b3e4.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:783)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)
at kr.co.cjons.ruleService.mdm.AlarmRule$$EnhancerBySpringCGLIB$$b2c78ea8.saveAlarms(<generated>)
at jdk.internal.reflect.GeneratedMethodAccessor124.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at kr.co.cjons.controller.RestApiController.callRule(RestApiController.java:170)
at jdk.internal.reflect.GeneratedMethodAccessor123.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:122)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:116)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='인증번호', mode=IN, javaType=class java.lang.Object, jdbcType=null, numericScale=null, resultMapId='null', jdbcTypeName='null', expression='null'}. Cause: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
at org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters(DefaultParameterHandler.java:89)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.parameterize(PreparedStatementHandler.java:94)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.parameterize(RoutingStatementHandler.java:64)
at org.apache.ibatis.executor.BatchExecutor.doUpdate(BatchExecutor.java:71)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)
at jdk.internal.reflect.GeneratedMethodAccessor117.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
... 124 more
Caused by: org.apache.ibatis.type.TypeException: Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
at org.apache.ibatis.type.BaseTypeHandler.setParameter(BaseTypeHandler.java:67)
at org.apache.ibatis.scripting.defaults.DefaultParameterHandler.setParameters(DefaultParameterHandler.java:87)
... 134 more
Caused by: org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
at org.postgresql.jdbc.PgPreparedStatement.setNull(PgPreparedStatement.java:192)
at net.sf.log4jdbc.sql.jdbcapi.PreparedStatementSpy.setNull(PreparedStatementSpy.java:266)
at cohttp://m.zaxxer.hikari.pool.HikariProxyPreparedStatement.setNull(HikariProxyPreparedStatement.java)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:67)
at cohttp://m.sun.proxy.$Proxy117.setNull(Unknown Source)
at org.apache.ibatis.type.BaseTypeHandler.setParameter(BaseTypeHandler.java:65)
... 135 more
2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] k.c.c.f.e.RuleExceptionHandler - Runtime Exception
2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] k.c.c.frame.message.MessageHandler - ########### language ========================== KO
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] r.n.r.PooledConnectionProvider - [6161ce24, L:/127.0.0.1:51477 - R:/127.0.0.1:8000] Channel acquired, now: 1 active connections, 0 inactive connections and 0 pending acquire requests.
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] r.n.http.client.HttpClientConnect - [6161ce24-2, L:/127.0.0.1:51477 - R:/127.0.0.1:8000] Handler is being applied: {uri=http://127.0.0.1:8000/api/platform/inquiry/multiLanguage/getLanguageData, method=POST}
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] r.n.r.DefaultPooledConnectionProvider - [6161ce24-2, L:/127.0.0.1:51477 - R:/127.0.0.1:8000] onStateChange(POST{uri=/api/platform/inquiry/multiLanguage/getLanguageData, connection=PooledConnection{channel=[id: 0x6161ce24, L:/127.0.0.1:51477 - R:/127.0.0.1:8000]}}, [request_prepared])
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] o.s.h.codec.json.Jackson2JsonEncoder - [32b38773] Encoding [{"params":{"lang_type_cd":"KO","msg_type_cd":"MESSAGE","lang_cd":"SYS_0001"}}]
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] r.n.r.DefaultPooledConnectionProvider - [6161ce24-2, L:/127.0.0.1:51477 - R:/127.0.0.1:8000] onStateChange(POST{uri=/api/platform/inquiry/multiLanguage/getLanguageData, connection=PooledConnection{channel=[id: 0x6161ce24, L:/127.0.0.1:51477 - R:/127.0.0.1:8000]}}, [request_sent])
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] r.n.http.client.HttpClientOperations - [6161ce24-2, L:/127.0.0.1:51477 - R:/127.0.0.1:8000] Received response (auto-read:false) : [Vary=Origin, Vary=Access-Control-Request-Method, Vary=Access-Control-Request-Headers, Date=Thu, 08 Feb 2024 06:27:14 GMT, Keep-Alive=timeout=60, X-Content-Type-Options=nosniff, X-XSS-Protection=1; mode=block, Cache-Control=no-cache, no-store, max-age=0, must-revalidate, Pragma=no-cache, Expires=0, X-Frame-Options=DENY, Content-Type=application/json, Transfer-Encoding=chunked]
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] r.n.r.DefaultPooledConnectionProvider - [6161ce24-2, L:/127.0.0.1:51477 - R:/127.0.0.1:8000] onStateChange(POST{uri=/api/platform/inquiry/multiLanguage/getLanguageData, connection=PooledConnection{channel=[id: 0x6161ce24, L:/127.0.0.1:51477 - R:/127.0.0.1:8000]}}, [response_received])
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] reactor.netty.channel.FluxReceive - [6161ce24-2, L:/127.0.0.1:51477 - R:/127.0.0.1:8000] FluxReceive{pending=0, cancelled=false, inboundDone=false, inboundError=null}: subscribing inbound receiver
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] r.n.http.client.HttpClientOperations - [6161ce24-2, L:/127.0.0.1:51477 - R:/127.0.0.1:8000] Received last HTTP packet
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] o.s.h.codec.json.Jackson2JsonDecoder - [32b38773] [6161ce24-2, L:/127.0.0.1:51477 - R:/127.0.0.1:8000] Decoded [{"result":[{"LANG_CD":"SYS_0001","ENT_CD":"B10","EVT_USER_ID":"admin","TX_TYPE_CD":"","HIST_KEY":"", (truncated)...]
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] r.n.r.DefaultPooledConnectionProvider - [6161ce24, L:/127.0.0.1:51477 - R:/127.0.0.1:8000] onStateChange(POST{uri=/api/platform/inquiry/multiLanguage/getLanguageData, connection=PooledConnection{channel=[id: 0x6161ce24, L:/127.0.0.1:51477 - R:/127.0.0.1:8000]}}, [response_completed])
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] r.n.r.DefaultPooledConnectionProvider - [6161ce24, L:/127.0.0.1:51477 - R:/127.0.0.1:8000] onStateChange(POST{uri=/api/platform/inquiry/multiLanguage/getLanguageData, connection=PooledConnection{channel=[id: 0x6161ce24, L:/127.0.0.1:51477 - R:/127.0.0.1:8000]}}, [disconnecting])
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] r.n.r.DefaultPooledConnectionProvider - [6161ce24, L:/127.0.0.1:51477 - R:/127.0.0.1:8000] Releasing channel
2024-02-08 15:27:14 [http-nio-8007-exec-9] [ERROR] k.c.c.controller.RestApiController - [SYSTEM_ERROR] ::: java.lang.reflect.InvocationTargetException
2024-02-08 15:27:14 [reactor-http-nio-5] [DEBUG] r.n.r.PooledConnectionProvider - [6161ce24, L:/127.0.0.1:51477 - R:/127.0.0.1:8000] Channel cleaned, now: 0 active connections, 1 inactive connections and 0 pending acquire requests.
2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] k.c.c.controller.RestApiController - Return Data  :::::  {"status":"FAIL","ruleReturnData":{},"messageInfo":{"messageCode":"SYS_0001","message":"","messageType":"ERROR"}}



2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] o.s.s.w.c.HttpSessionSecurityContextRepository - Did not store anonymous SecurityContext
2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] o.s.s.w.c.HttpSessionSecurityContextRepository - Did not store anonymous SecurityContext
2024-02-08 15:27:14 [http-nio-8007-exec-9] [DEBUG] o.s.s.w.c.SecurityContextPersistenceFilter - Cleared SecurityContextHolder to complete request
2024-02-08 15:27:26 [quartzScheduler_QuartzSchedulerThread] [DEBUG] o.quartz.core.QuartzSchedulerThread - batch acquisition of 0 triggers
2024-02-08 15:27:53 [quartzScheduler_QuartzSchedulerThread] [DEBUG] o.quartz.core.QuartzSchedulerThread - batch acquisition of 0 triggers
2024-02-08 15:28:09 [pool-1-thread-1] [DEBUG] o.a.h.i.c.PoolingHttpClientConnectionManager - Closing expired connections
2024-02-08 15:28:09 [pool-1-thread-1] [DEBUG] o.a.h.i.c.PoolingHttpClientConnectionManager - Closing connections idle longer than 30 SECONDS
2024-02-08 15:28:14 [reactor-http-nio-5] [DEBUG] r.n.r.DefaultPooledConnectionProvider - [6161ce24, L:/127.0.0.1:51477 ! R:/127.0.0.1:8000] onStateChange(PooledConnection{channel=[id: 0x6161ce24, L:/127.0.0.1:51477 ! R:/127.0.0.1:8000]}, [disconnecting])
2024-02-08 15:28:21 [quartzScheduler_QuartzSchedulerThread] [DEBUG] o.quartz.core.QuartzSchedulerThread - batch acquisition of 0 triggers
2024-02-08 15:28:48 [quartzScheduler_QuartzSchedulerThread] [DEBUG] o.quartz.core.QuartzSchedulerThread - batch acquisition of 0 triggers
2024-02-08 15:29:09 [pool-1-thread-1] [DEBUG] o.a.h.i.c.PoolingHttpClientConnectionManager - Closing expired connections
2024-02-08 15:29:09 [pool-1-thread-1] [DEBUG] o.a.h.i.c.PoolingHttpClientConnectionManager - Closing connections idle longer than 30 SECONDS
2024-02-08 15:29:14 [quartzScheduler_QuartzSchedulerThread] [DEBUG] o.quartz.core.QuartzSchedulerThread - batch acquisition of 0 triggers
2024-02-08 15:29:42 [quartzScheduler_QuartzSchedulerThread] [DEBUG] o.quartz.core.QuartzSchedulerThread - batch acquisition of 1 triggers
2024-02-08 15:30:00 [quartzScheduler_Worker-5] [DEBUG] org.quartz.core.JobRunShell - Calling execute on job MES-JOB.WeatherForecastBatch_job
2024-02-08 15:30:00 [quartzScheduler_QuartzSchedulerThread] [DEBUG] o.quartz.core.QuartzSchedulerThread - batch acquisition of 0 triggers
2024-02-08 15:30:00 [quartzScheduler_Worker-5] [DEBUG] o.s.j.d.DataSourceTransactionManager - Creating new transaction with name [kr.co.cjons.ruleService.batch.BatchRule.updateBatch]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT,timeout_100000,-java.lang.Exception
2024-02-08 15:30:00 [quartzScheduler_Worker-5] [DEBUG] o.s.j.d.DataSourceTransactionManager - Acquired Connection [HikariProxyConnection@1707777815 wrapping net.sf.log4jdbc.sql.jdbcapi.ConnectionSpy@6f83c55b] for JDBC transaction
2024-02-08 15:30:00 [quartzScheduler_Worker-5] [DEBUG] o.s.j.d.DataSourceTransactionManager - Switching JDBC Connection [HikariProxyConnection@1707777815 wrapping net.sf.log4jdbc.sql.jdbcapi.ConnectionSpy@6f83c55b] to manual commit
2024-02-08 15:30:00 [quartzScheduler_Worker-5] [DEBUG] kr.co.cjons.frame.dao.CommonDao - ########################## queryId : cache.selectTableColumnInfos ##########################
2024-02-08 15:30:00 [quartzScheduler_Worker-5] [DEBUG] kr.co.cjons.frame.dao.AbstractDao -   QueryId   :  cache.selectTableColumnInfos
2024-02-08 15:30:00 [quartzScheduler_Worker-5] [DEBUG] org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession
2024-02-08 15:30:00 [quartzScheduler_Worker-5] [DEBUG] org.mybatis.spring.SqlSessionUtils - Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@793e5f71]
2024-02-08 15:30:00 [quartzScheduler_Worker-5] [DEBUG] cache - Cache Hit Ratio [cache]: 0.24623115577889448
2024-02-08 15:30:00 [quartzScheduler_Worker-5] [DEBUG] o.m.s.t.SpringManagedTransaction - JDBC Connection [HikariProxyConnection@1707777815 wrapping net.sf.log4jdbc.sql.jdbcapi.ConnectionSpy@6f83c55b] will be managed by Spring
2024-02-08 15:30:00 [quartzScheduler_Worker-5] [DEBUG] cache.selectTableColumnInfos - ==>  Preparing: SELECT A.table_name as "TABLE_NAME" ,A.column_name as "COLUMN_NAME" ,A.udt_name as "DATA_TYPE" FROM INFORMATION_SCHEMA.columns A WHERE 1=1 AND A.table_name = ? ORDER BY A.ordinal_position
2024-02-08 15:30:00 [quartzScheduler_Worker-5] [DEBUG] cache.selectTableColumnInfos - ==> Parameters: sys_batch(String)
2024-02-08 15:30:00 [quartzScheduler_Worker-5] [DEBUG] jdbc.sqltiming -  cohttp://m.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPr

반응형
반응형

cond_isHarvestKg != null  정상동작

cond_isHarvestKg != '' 정상동작

cond_isHarvestKg != 'Y' 이거만 있으면 무조건 if조건이 true가 되는 문제 발생함

처음에는 대소문자 인식이 안되는 문제인줄 알았으나 아니었음만약 인식이 안된다면 무조건 false가 되어야 하는데 이 경우는 무조건 true가 되었음정확히는 모르겠지만 예전에 발생한 아래오류 발견!!! 관련이 있을지도 모르겠음

 

-------------------------------------------------

mybatis java.lang.numberformatexception for input string에러가 난데없이 발생

string을 number로 잘못 변환했다는 건데 그런적이 없는데 왜?? 알고보니 아래와 같은 이유였음 

<if test=status=='P' and status=='p'> -> 'p'를 char -> int로 변환하여 비교시 status도 int로 변환되어 에러남

<if test=status=="P" and status=="p"> ->"p"로 해줘야함

 

반응형
반응형
		<if test="cond_alarm_type_cd_list != null and cond_alarm_type_cd_list != ''">
			and C.alarm_type_cd in
			<foreach collection="cond_alarm_type_cd_list" item="item" index="index" open="(" separator="," close=")">
				#{item}
			</foreach>
		</if>

-> cond_alarm_type_cd_list =[]이면 아래와 같이 잘못된 query생성됨

        SELECT 
          FPS.PLT_SCHEDULE_ID AS "PLT_SCHEDULE_ID", 
          FPS.PLT_SCHEDULE_NM AS "PLT_SCHEDULE_NM", 
          FPS.PLT_CD AS "PLT_CD", 
          FPS.ROOM_ID AS "ROOM_ID", 
          FPS.DSC AS "DSC", 
          CASE WHEN FPS.ALL_DAY_YN = 'Y' THEN true WHEN FPS.ALL_DAY_YN = 'N' THEN false ELSE NULL END AS "ALL_DAY_YN", 
          FPS.START_DT AS "START_DT", 
          CASE WHEN FPS.ALL_DAY_YN = 'Y' THEN '종일' WHEN FPS.ALL_DAY_YN = 'N' THEN TO_CHAR(FPS.START_DT, 'HH24:mi') ELSE NULL END AS "START_TIME", 
          FPS.END_DT AS "END_DT", 
          FPS.REMARK AS "REMARK" 
        FROM 
          FARM_PLT_SCHEDULE FPS 
        WHERE 
          FPS.USE_YN = 'Y' 
          AND FPS.PLT_CD IN 
          AND FPS.START_DT BETWEEN ? :: timestamp 
          AND ? :: timestamp + interval '1 day'

 

<if test="apiKeys.size() > 0">
    <choose>
        <when test="ids==null || ids.isEmpty()">
            1 = 0 <!-- a test returning false, to adapt depending on you DB vendor -->
        </when>
        <otherwise>
            id IN <foreach item="id" collection="ids" open="(" separator="," close=")">#{id}</foreach>
        </otherwise>
    </choose>

참고: https://stackoverflow.com/questions/42995592/how-can-i-skip-query-if-where-in-clause-is-empty-in-mybatis-3

반응형
반응형
  • collection: 1:N관계 테이블 join시
  • association: 1:1관계 테이블 join시

실제테이블 아닌 view나 subquery로 join시에도 적용되는지?

반응형
반응형

JDBC (Java Data Base Connectivity) 는 자바에서 Database 를 연결하기 위해 제공되는 Core API

MyBatis 는 SQL Mapper의 일종으로 JDBC를 이용해서 DB에 SQL을 실행하는 것에 대한 방식을 개발적인 관점에서 좀 더 편하고 관리하기 쉽게 만든 Wrapper LIB 개념

차를 운전할 때 핸들은 제조사에서 달려 나오지만 사람에 따라서 다양한 형태의 핸들 커버를 씌우기도 하고 손잡이도 달기도 

제조사에서 달려 나온 핸들을 JDBC 라고 생각하시면 MyBatis 같은 LIB들은 핸들커버나 손잡이 정도에 해당하겠네요.

중요한건 핸들만 가지고 운전을 할수는 있지만 핸들없이 핸들커버만 가지고 운전을 할 수는 없다는점을 생각해 보시면 될 것 같습니다.

반응형
반응형

resultType 은 리턴값이 List<?> 여도 DTO, VO, Map 으로 지정해줘야함

반환된 최종값이 아닌 반환될 객체의 타입으로 지정해줘야함

select A from B 같은 경우에는 List<String> 형태일테니 resultType 은 java.lang.String

select A,B from C의 경우,  따로 객체안만드려면 map

반응형

'java, mybatis' 카테고리의 다른 글

mybatis collection, association  (0) 2022.04.27
mybatis  (0) 2022.04.23
mybatis 사용이유  (0) 2022.04.23
mytabis: parameterType, resultType, resultMap  (0) 2022.04.23
mybatis 비교시 주의사항 (=="비교대상"로 써야함)  (0) 2022.04.23
반응형
  • 생산성 - 빠른개발
    • DBCP만 썻을 때 connection, resultSet, statement, transaction 관리도 해야되고 특히 운영하다 명시적인 connection, resultSet, statement, transaction 닫지 않고 잘못 써서 서버 죽는 경우 허다
    • resultSet의 데이터 매핑도 신경써야 하고 소스분석도 어려워짐
  • 보안: SQL injection공격에 신경안써도 됨 (DBCP경우 preparedStatement 쓰면 문제없지만...)
  •  oracle의 경우 blob, clob 치환에 신경안써도 됨
  • 디버깅 쉬워짐: ? => value로 매핑된 쿼리문으로 로그남겨서...
  • 데이터 캐싱(LIFO, FIFO, LRU) 가능
    • 조회용 데이터 성능 안나올때 성능개선 가능, xml 설정만으로 적용가능
  • resultType result class를 VO안쓰고 맵으로 받을 수 있음
반응형

'java, mybatis' 카테고리의 다른 글

mybatis collection, association  (0) 2022.04.27
mybatis  (0) 2022.04.23
mybatis resultType  (0) 2022.04.23
mytabis: parameterType, resultType, resultMap  (0) 2022.04.23
mybatis 비교시 주의사항 (=="비교대상"로 써야함)  (0) 2022.04.23
반응형
  • parameterType:  실제로 넘어오는 actual parameter로 유추가능하기 때문에 생략가능
  • resultType, resultMap
    • resultType: className or alias사용가능
      • java String class에 대한 alias는 string, 그래서 String, string이렇게 대소문자 모두 사용가능한듯
    • resultMap: mapper XML내부에서 정의해서 사용
      • 복잡한 구조로 변경이 필요할 때는   resultMap으로 변환해서 사용하면 좋음
      • 다음과 같이 3단구조로 된 복잡한 애도 아래처럼 매핑해서 사용가능
        • <resultMap id="homeAppTab" type="TabPayload">
              <id property="idx" column="idx"/>
              <result property="status" column="status"/>
              <result property="deviceType" column="device_type"/>
              <result property="region" column="region"/>
              <result property="tabCode" column="tab_code"/>
              <result property="tabName" column="tab_name"/>
              <collection property="tabMultiLangList" ofType="TabMultiLangPayload">
                <id property="idx" column="tabLangIdx"/>
                <result property="tabLangCode" column="tabLangCode"/>
                <result property="tabLangName" column="tabLangName"/>
              </collection>
              <collection property="categoryList" ofType="CategoryPayload">
                <id property="idx" column="categoryIdx"/>
                <result property="categoryCode" column="category_code"/>
                <result property="categoryName" column="category_name"/>
                <result property="categoryOrder" column="category_order"/>
                <collection property="categoryMultiLangList" ofType="CategoryMultiLangPayload">
                  <id property="idx" column="categoryLangIdx"/>
                  <result property="categoryLangCode" column="categoryLangCode"/>
                  <result property="categoryLangName" column="categoryLangName"/>
                </collection>
                <collection property="categoryResultList" ofType="CategoryResultPayload">
                  <id property="idx" column="categoryResultIdx"/>
                  <result property="countryCode" column="country_code"/>
                  <result property="providerId" column="provider_id"/>
                  <result property="contentType" column="result_content_type"/>
                  <result property="contentId" column="content_id"/>
                  <result property="resultOrder" column="result_order"/>
                </collection>
              </collection>
            </resultMap>

 

반응형

'java, mybatis' 카테고리의 다른 글

mybatis collection, association  (0) 2022.04.27
mybatis  (0) 2022.04.23
mybatis resultType  (0) 2022.04.23
mybatis 사용이유  (0) 2022.04.23
mybatis 비교시 주의사항 (=="비교대상"로 써야함)  (0) 2022.04.23
반응형

mybatis java.lang.numberformatexception for input string에러가 난데없이 발생

string을 number로 잘못 변환했다는 건데 그런적이 없는데 왜?? 알고보니 아래와 같은 이유였음 

<if test=status=='P' and status=='p'> -> 'p'를 char -> int로 변환하여 비교시 status도 int로 변환되어 에러남

<if test=status=="P" and status=="p"> ->"p"로 해줘야함

반응형

'java, mybatis' 카테고리의 다른 글

mybatis collection, association  (0) 2022.04.27
mybatis  (0) 2022.04.23
mybatis resultType  (0) 2022.04.23
mybatis 사용이유  (0) 2022.04.23
mytabis: parameterType, resultType, resultMap  (0) 2022.04.23

+ Recent posts