yanghekuan opened a new issue, #19901:
URL: https://github.com/apache/shardingsphere/issues/19901
Using MyBatis + Shardingsphere5.1.1 according to the monthly score table,
but I can use MyBatis plus, using MyBatis mapper. XML file will report errors,
why?
2022-08-05 16:25:46.676 INFO 103524 --- [nio-8888-exec-1]
o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring
DispatcherServlet 'dispatcherServlet'
2022-08-05 16:25:46.676 INFO 103524 --- [nio-8888-exec-1]
o.s.web.servlet.DispatcherServlet : Initializing Servlet
'dispatcherServlet'
2022-08-05 16:25:46.677 INFO 103524 --- [nio-8888-exec-1]
o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
2022-08-05 16:25:47.114 ERROR 103524 --- [nio-8888-exec-1]
o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet
[dispatcherServlet] in context with path [] threw exception [Request processing
failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested
exception is org.apache.ibatis.exceptions.PersistenceException:
### Error updating database. Cause: java.lang.IllegalStateException: Insert
statement does not support sharding table routing to multiple data nodes.
### The error may exist in file
[D:\IdeaWorkspace\sharding\target\classes\mapper\HssHistoryMapper.xml]
### The error may involve
com.ehl.sharding.mapper.HssHistoryMapper.insertOrder-Inline
### The error occurred while setting parameters
### SQL: insert into order_info
(order_id,trans_date,trans_no,trans_acct_no,offset_bal,create_time) values
(?,?,?,?,?,curdate())
### Cause: java.lang.IllegalStateException: Insert statement does not
support sharding table routing to multiple data nodes.] with root cause
java.lang.IllegalStateException: Insert statement does not support sharding
table routing to multiple data nodes.
at
com.google.common.base.Preconditions.checkState(Preconditions.java:508)
~[guava-30.0-jre.jar:na]
at
org.apache.shardingsphere.sharding.route.engine.validator.dml.impl.ShardingInsertStatementValidator.postValidate(ShardingInsertStatementValidator.java:101)
~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.sharding.route.engine.ShardingSQLRouter.lambda$createRouteContext$1(ShardingSQLRouter.java:57)
~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
at java.util.Optional.ifPresent(Optional.java:159) ~[na:1.8.0_191]
at
org.apache.shardingsphere.sharding.route.engine.ShardingSQLRouter.createRouteContext(ShardingSQLRouter.java:57)
~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.sharding.route.engine.ShardingSQLRouter.createRouteContext(ShardingSQLRouter.java:44)
~[shardingsphere-sharding-core-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.infra.route.engine.impl.PartialSQLRouteExecutor.route(PartialSQLRouteExecutor.java:73)
~[shardingsphere-infra-route-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.infra.route.engine.SQLRouteEngine.route(SQLRouteEngine.java:53)
~[shardingsphere-infra-route-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.infra.context.kernel.KernelProcessor.route(KernelProcessor.java:54)
~[shardingsphere-infra-context-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.infra.context.kernel.KernelProcessor.generateExecutionContext(KernelProcessor.java:46)
~[shardingsphere-infra-context-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement.createExecutionContext(ShardingSpherePreparedStatement.java:470)
~[shardingsphere-jdbc-core-5.1.1.jar:5.1.1]
at
org.apache.shardingsphere.driver.jdbc.core.statement.ShardingSpherePreparedStatement.execute(ShardingSpherePreparedStatement.java:364)
~[shardingsphere-jdbc-core-5.1.1.jar:5.1.1]
at
org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)
~[mybatis-3.5.3.jar:3.5.3]
at
org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)
~[mybatis-3.5.3.jar:3.5.3]
at
com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doUpdate(MybatisSimpleExecutor.java:54)
~[mybatis-plus-core-3.3.1.jar:3.3.1]
at
org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
~[mybatis-3.5.3.jar:3.5.3]
at
com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.update(MybatisCachingExecutor.java:83)
~[mybatis-plus-core-3.3.1.jar:3.3.1]
at
org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
~[mybatis-3.5.3.jar:3.5.3]
at
org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)
~[mybatis-3.5.3.jar:3.5.3]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[na:1.8.0_191]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[na:1.8.0_191]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[na:1.8.0_191]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_191]
at
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
~[mybatis-spring-2.0.3.jar:2.0.3]
at com.sun.proxy.$Proxy204.insert(Unknown Source) ~[na:na]
at
org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:271)
~[mybatis-spring-2.0.3.jar:2.0.3]
at
com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:60)
~[mybatis-plus-core-3.3.1.jar:3.3.1]
at
com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:96)
~[mybatis-plus-core-3.3.1.jar:3.3.1]
at com.sun.proxy.$Proxy205.insertOrder(Unknown Source) ~[na:na]
at
com.ehl.sharding.service.impl.HssHistoryServiceImpl.insertOrder(HssHistoryServiceImpl.java:20)
~[classes/:na]
at
com.ehl.sharding.controller.ShardingController.getData(ShardingController.java:26)
~[classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
~[na:1.8.0_191]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[na:1.8.0_191]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[na:1.8.0_191]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_191]
at
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
~[spring-web-5.3.22.jar:5.3.22]
at
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)
~[spring-web-5.3.22.jar:5.3.22]
at
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
~[spring-webmvc-5.3.22.jar:5.3.22]
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
~[spring-webmvc-5.3.22.jar:5.3.22]
at
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
~[spring-webmvc-5.3.22.jar:5.3.22]
at
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
~[spring-webmvc-5.3.22.jar:5.3.22]
at
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1070)
~[spring-webmvc-5.3.22.jar:5.3.22]
at
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
~[spring-webmvc-5.3.22.jar:5.3.22]
at
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
~[spring-webmvc-5.3.22.jar:5.3.22]
at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
~[spring-webmvc-5.3.22.jar:5.3.22]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
~[tomcat-embed-core-9.0.65.jar:4.0.FR]
at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
~[spring-webmvc-5.3.22.jar:5.3.22]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
~[tomcat-embed-core-9.0.65.jar:4.0.FR]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
~[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
~[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
~[tomcat-embed-websocket-9.0.65.jar:9.0.65]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
~[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
~[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
~[spring-web-5.3.22.jar:5.3.22]
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
~[spring-web-5.3.22.jar:5.3.22]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
~[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
~[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
~[spring-web-5.3.22.jar:5.3.22]
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
~[spring-web-5.3.22.jar:5.3.22]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
~[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
~[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
~[spring-web-5.3.22.jar:5.3.22]
at
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
~[spring-web-5.3.22.jar:5.3.22]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
~[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
~[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
~[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
[tomcat-embed-core-9.0.65.jar:9.0.65]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_191]
`server:
port: 8888
mybatis:
mapper-locations: classpath*:/mapper/**/*.xml
typeAliasesPackage: com.ehl.sharding.entity
configuration:
mapUnderscoreToCamelCase: true
check-config-location: true
spring:
shardingsphere:
enabled: true
props:
sql-show: true
datasource:
names: master
master:
type: ${spring.datasource.type}
driver-class-name: ${spring.datasource.druid.driver-class-name}
url: ${spring.datasource.druid.url}
username: ${spring.datasource.druid.username}
password: ${spring.datasource.druid.password}
rules:
sharding:
tables:
order_info:
actual-data-nodes:
master.order_info,master.order_info_$->{2022..2050}$->{(1..12).collect(i->i.toString().padLeft(2,'0'))}
table-strategy:
standard:
sharding-column: create_time
sharding-algorithm-name: order-info-inline
sharding-algorithms:
order-info-inline:
type: CLASS_BASED
props:
strategy: standard
algorithmClassName:
com.ehl.sharding.config.DateShardingAlgorithm
binding-tables: order_info
default-key-generate-strategy:
column: order_id
key-generator-name: id-key
key-generators:
id-key:
type: SNOWFLAKE
autoconfigure:
exclude:
com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url:
jdbc:mysql://10.150.36.9:3306/ehl_spdb?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
username: root
password: root
`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail:
[email protected]
For queries about this service, please contact Infrastructure at:
[email protected]