Techoc opened a new issue, #29135:
URL: https://github.com/apache/shardingsphere/issues/29135

        This is my project link: 
https://github.com/Techoc/learn-java/tree/master/dynamic-datasource/dynamic-datasource-sharding-jdbc-02
   
   ## Question
        When i use READWRITE_SPLITTING mode by sharding-JDBC, write and read in 
a transaction. According to the official documentation,both data reads and 
writes in transactions use the primary database.
        But when I was testing, write the primary database and read the slave 
database.
   
   ## TestCode
   ```Java
   @SpringBootTest  
   public class OrderServiceTest {  
     
       @Resource  
       private OrderService orderService;  
     
       @Test  
       public void testAdd() {  
           OrderDO order = new OrderDO();  
           order.setUserId(20);  
           orderService.add(order);  
       }  
     
   }
   ```
   
   ## DataBase
   ```
   ds_master:
   id,user_id
   1,2
   ```
   
   ```
   ds_slave_1:
   id,user_id
   1,1
   ```
   
   ```
   ds_slave_2:
   id,user_id
   1,3
   ```
   ## Expected
   ```shell
   primary OrderDO(id=1, userId=2)
   ```
   
   ## Actual
   ```
   primary: OrderDO(id=1, userId=3)
   ```
   
   ## Log
   ```shell
   2023-11-23T15:25:14.461+08:00  INFO 151768 --- [    Test worker] 
ShardingSphere-SQL                       : Logic SQL: SELECT
            
           id
           , user_id
        
           FROM orders
           WHERE id = ?
   2023-11-23T15:25:14.462+08:00  INFO 151768 --- [    Test worker] 
ShardingSphere-SQL                       : Actual SQL: ds_slave_1 ::: SELECT
            
           id
           , user_id
        
           FROM orders
           WHERE id = ? ::: [1]
   OrderDO(id=1, userId=1)
   2023-11-23T15:25:14.823+08:00  INFO 151768 --- [    Test worker] 
ShardingSphere-SQL                       : Logic SQL: INSERT INTO orders 
(user_id)
           VALUES (?)
   2023-11-23T15:25:14.823+08:00  INFO 151768 --- [    Test worker] 
ShardingSphere-SQL                       : Actual SQL: ds_master ::: INSERT 
INTO orders (user_id)
           VALUES (?) ::: [20]
   2023-11-23T15:25:14.960+08:00  INFO 151768 --- [    Test worker] 
ShardingSphere-SQL                       : Logic SQL: SELECT
            
           id
           , user_id
        
           FROM orders
           WHERE id = ?
   2023-11-23T15:25:14.960+08:00  INFO 151768 --- [    Test worker] 
ShardingSphere-SQL                       : Actual SQL: ds_slave_2 ::: SELECT
            
           id
           , user_id
        
           FROM orders
           WHERE id = ? ::: [1]
   primary: OrderDO(id=1, userId=3)
   ```


-- 
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]

Reply via email to