- 40
- 0
PositionController.java@Controller@RequestMapping("/position")public class PositionController { @Autowired private PositionRepository positionRepository; @Autowired private PositionDetailRepository positionDetailRepository; @ResponseBody @RequestMapping("/insert") public void insert() { for (int i = 1; i <= 20; i++) { Position position = new Position("Manager"); positionRepository.save(position); Long positionId = position.getId(); PositionDetail positionDetail = new PositionDetail(positionId, "Description"); positionDetailRepository.save(positionDetail); } } @RequestMapping("/find") public void find() { Object object = positionRepository.find(661547422605901824L); Object[] objectArray = (Object[])object; BigInteger id = (BigInteger)objectArray[0]; String name = (String)objectArray[1]; String description = (String)objectArray[2]; System.out.println(id); System.out.println(name); System.out.println(description); }}Position.java@Entity@Table(name = "POSITION")public class Position { @Id @Column(name = "ID") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "NAME") private String name; // 省略构造方法、Getter、Setter}PositionDetail.java@Entity@Table(name = "POSITION_DETAIL")public class PositionDetail { @Id @Column(name = "ID") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "POSITION_ID") private Long positionId; @Column(name = "DESCRIPTION") private String description; // 省略构造方法、Getter、Setter}PositionDetailRepository.javapublic interface PositionDetailRepository extends JpaRepository<PositionDetail, Long> {}PositionRepository.javapublic interface PositionRepository extends JpaRepository<Position, Long> { @Query(nativeQuery = true, value = "SELECT P.ID, P.NAME, D.DESCRIPTION FROM POSITION P JOIN POSITION_DETAIL D ON P.ID = D.POSITION_ID WHERE P.ID = :id") public Object find(@Param("id") Long id);}application.propertiesspring.profiles.active=sharding spring.shardingsphere.props.sql.show=trueapplication-sharding.properties# datasourcespring.shardingsphere.datasource.names=shard0,shard1spring.shardingsphere.datasource.shard0.type=com.zaxxer.hikari.HikariDataSourcespring.shardingsphere.datasource.shard0.driver-class-name=com.mysql.jdbc.Driverspring.shardingsphere.datasource.shard0.jdbc-url=jdbc:mysql://localhost:3306/database1spring.shardingsphere.datasource.shard0.username=rootspring.shardingsphere.datasource.shard0.password=123456spring.shardingsphere.datasource.shard1.type=com.zaxxer.hikari.HikariDataSourcespring.shardingsphere.datasource.shard1.driver-class-name=com.mysql.jdbc.Driverspring.shardingsphere.datasource.shard1.jdbc-url=jdbc:mysql://localhost:3306/database2spring.shardingsphere.datasource.shard1.username=rootspring.shardingsphere.datasource.shard1.password=123456# sharding-databasespring.shardingsphere.sharding.tables.position.database-strategy.inline.sharding-column=idspring.shardingsphere.sharding.tables.position.database-strategy.inline.algorithm-expression=shard${id % 2}spring.shardingsphere.sharding.tables.position_detail.database-strategy.inline.sharding-column=position_idspring.shardingsphere.sharding.tables.position_detail.database-strategy.inline.algorithm-expression=shard${position_id % 2}# idspring.shardingsphere.sharding.tables.position.key-generator.column=idspring.shardingsphere.sharding.tables.position.key-generator.type=SNOWFLAKEspring.shardingsphere.sharding.tables.position_detail.key-generator.column=idspring.shardingsphere.sharding.tables.position_detail.key-generator.type=SNOWFLAKE请求 ...8080/position/insert 测试添加数据,符合预期database1.position 数据量 10database1.position_detail 数据量 10database2.position 数据量 10database2.position_detail 数据量 10请求 ...8080/position/find 测试查询数据,不符预期Actual SQL: shard0 ::: SELECT P.ID, P.NAME, D.DESCRIPTION FROM position P JOIN position_detail D ON P.ID = D.POSITION_ID WHERE P.ID = ? ::: [661547422605901824]Actual SQL: shard1 ::: SELECT P.ID, P.NAME, D.DESCRIPTION FROM position P JOIN position_detail D ON P.ID = D.POSITION_ID WHERE P.ID = ? ::: [661547422605901824]我的疑问教程中的查询结果仅查询 shard0 即可,无需查询 shard1,但我实测时通过日志可知会查询完 shard0,再去查询 shard1,请问是为什么呢?并没有根据我的 ID 进行分片查找相应的库
0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

