flypangzhi commented on issue #5173: UUID is configured, but SNOWFLAKE is used
URL: 
https://github.com/apache/incubator-shardingsphere/issues/5173#issuecomment-613775648
 
 
   > 
   > 
   > Your error message above is not related of key gen. It seems datasources 
config conflict.
   > See faq: https://shardingsphere.apache.org/document/current/cn/faq/ No.20
   > 
   > If not work, plz show all your config in yaml/spring/javacodes.
   
   **According to the FAQ NO 20,I changed the druid-spring-boot-starter data 
source to DBCP OR DBCP2 , but the error still exists。**
   
   ### errorMsg:
   
   ```
   org.mybatis.spring.MyBatisSystemException: nested exception is 
org.apache.ibatis.reflection.ReflectionException: Could not set property 'code' 
of 'class com.project.modular.code.entity.UserCode' with value 
'1250240867332034561' Cause: java.lang.IllegalArgumentException: argument type 
mismatch
        at 
org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
        at 
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
        at com.sun.proxy.$Proxy73.insert(Unknown Source)
        at 
org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)
        at 
com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)
        at 
com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:61)
        at com.sun.proxy.$Proxy74.insert(Unknown Source)
        at 
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.save(ServiceImpl.java:105)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
        at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:206)
        at com.sun.proxy.$Proxy76.save(Unknown Source)
        at 
com.project.modular.code.controller.UserCodeController.saveSingle(UserCodeController.java:30)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)
        at 
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
        at 
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
        at 
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:891)
        at 
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
        at 
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at 
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)
        at 
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)
        at 
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)
        at 
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
        at 
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at 
org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at 
org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at 
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at 
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
        at 
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
        at 
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
        at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
        at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
        at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
        at 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:748)
   Caused by: org.apache.ibatis.reflection.ReflectionException: Could not set 
property 'code' of 'class com.project.modular.code.entity.UserCode' with value 
'1250240867332034561' Cause: java.lang.IllegalArgumentException: argument type 
mismatch
        at 
org.apache.ibatis.reflection.wrapper.BeanWrapper.setBeanProperty(BeanWrapper.java:185)
        at 
org.apache.ibatis.reflection.wrapper.BeanWrapper.set(BeanWrapper.java:59)
        at org.apache.ibatis.reflection.MetaObject.setValue(MetaObject.java:140)
        at 
com.baomidou.mybatisplus.core.MybatisDefaultParameterHandler.populateKeys(MybatisDefaultParameterHandler.java:178)
        at 
com.baomidou.mybatisplus.core.MybatisDefaultParameterHandler.processBatch(MybatisDefaultParameterHandler.java:120)
        at 
com.baomidou.mybatisplus.core.MybatisDefaultParameterHandler.<init>(MybatisDefaultParameterHandler.java:51)
        at 
com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver.createParameterHandler(MybatisXMLLanguageDriver.java:34)
        at 
com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver.createParameterHandler(MybatisXMLLanguageDriver.java:28)
        at 
org.apache.ibatis.session.Configuration.newParameterHandler(Configuration.java:550)
        at 
org.apache.ibatis.executor.statement.BaseStatementHandler.<init>(BaseStatementHandler.java:69)
        at 
org.apache.ibatis.executor.statement.PreparedStatementHandler.<init>(PreparedStatementHandler.java:41)
        at 
org.apache.ibatis.executor.statement.RoutingStatementHandler.<init>(RoutingStatementHandler.java:46)
        at 
org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:563)
        at 
org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:48)
        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:198)
        at 
org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)
        ... 68 common frames omitted
   Caused by: java.lang.IllegalArgumentException: argument type mismatch
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.apache.ibatis.reflection.invoker.MethodInvoker.invoke(MethodInvoker.java:44)
        at 
org.apache.ibatis.reflection.wrapper.BeanWrapper.setBeanProperty(BeanWrapper.java:180)
        ... 90 common frames omitted
   [2020-04-15 09:53:45.918] [http-nio-1000-exec-1] [WARN ] 
o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - Resolved exception caused by 
handler execution: org.mybatis.spring.MyBatisSystemException: nested exception 
is org.apache.ibatis.reflection.ReflectionException: Could not set property 
'code' of 'class com.project.modular.code.entity.UserCode' with value 
'1250240867332034561' Cause: java.lang.IllegalArgumentException: argument type 
mismatch
   ```
   
   ### pom.xml
   ```
   <dependency>
                    <groupId>commons-dbcp</groupId>
                    <artifactId>commons-dbcp</artifactId>
                    <version>1.4</version>
                </dependency>
   
   <dependency>
               <groupId>org.apache.shardingsphere</groupId>
               <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
               <version>4.0.0-RC1</version>
           </dependency>
   ```
   
   ### yml
   
   ```
   spring:
     shardingsphere:
       props:     
         sql:      #sql打印
           show: true
         #executor:     #工作线程数量,默认值: CPU核数
         #  size: 4
         
       datasource:            #数据源配置
         names: db,db0,db1,db2   #数据库别名
         db:                 #数据源具体配置
           type: org.apache.commons.dbcp.BasicDataSource
           driver-class-name: com.mysql.jdbc.Driver
           url: jdbc:mysql://localhost:3306/db?characterEncoding=utf-8
           username: root
           password: root
         db0:                 #数据源具体配置
           type: org.apache.commons.dbcp.BasicDataSource
           driver-class-name: com.mysql.jdbc.Driver
           url: jdbc:mysql://localhost:3306/db0?characterEncoding=utf-8
           username: root
           password: root
         db1:                 #数据源具体配置
           type: org.apache.commons.dbcp.BasicDataSource
           driver-class-name: com.mysql.jdbc.Driver
           url: jdbc:mysql://localhost:3306/db1?characterEncoding=utf-8
           username: root
           password: root
         db2:                 #数据源具体配置
           type: org.apache.commons.dbcp.BasicDataSource
           driver-class-name: com.mysql.jdbc.Driver
           url: jdbc:mysql://localhost:3306/db2?characterEncoding=utf-8
           username: root
           password: root
     
       sharding:       ##配置分库分表规则
         default-data-source-name: db   #未配置分片规则的表将通过默认数据源定位,而且不是广播表
         broadcast-tables: t_need    #广播表配置,一个库一个表
         tables:       #具体策略                
           tab_user: 
             actual-data-nodes: db$->{0..2}.tab_user$->{0..1}  #具体的数据节点
             database-strategy:   #分库规则 
               inline:
                 sharding-column: age
                 algorithm-expression: db$->{age%3}
             table-strategy:
               inline:
                 sharding-column: id     #按照id取模结果确定
                 algorithm-expression: tab_user$->{id % 2}
             key-generator:    #配置主键生成策略
               column: id
               type: SNOWFLAKE
               props:
                 worker:
                   id: 20200413
           user_code:
             actual-data-nodes: db$->{0..2}.user_code$->{0..1}  #具体的数据节点   
             database-strategy:   #分库规则 
               inline:
                 sharding-column: code
                 algorithm-expression: db$->{Math.abs(code.hashCode() % 3)}     
    
             table-strategy:
               inline:
                 sharding-column: code
                 algorithm-expression: user_code$->{Math.abs(code.hashCode() % 
2)}        
             key-generator:
               column: code
               type: UUID      ###目前配置失败
   ```
   

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to