请教关于ignite与mybatis整合的问题
@李玉珏 你好,想跟你请教个问题:李玉珏老师你好,我是一名大学生,我最近想将 ignite 运用在我自己的项目中,将ignite 作为 mysql 与服务器之间的缓存区,通过读写 ignite 来操作数据,利用 ignite 对 RDBMS 的支持,用 mysql 来做持久化,将我的业务完全与 mysql 脱离。 我进行了尝试,但是发现两个问题:
(1)ignite 将数据自动导入缓存之后,把我的数据库表分成了很多 Cache,每个表是一个 Cache。当我尝试用 mybatis 直接操作ignite时,发现无法直接将原来写在 mybatis xml 中的 sql 使用到 ignite 中,而是必须在每个 sql 的表名前加上Cache的名字,才可以查询。例如:select * from "UsersCache".users limit 5; 我觉得这样不太好,有没有方法能让我直接做转移,而不对以前的 sql 进行修改。
(2)我也进行了事务测试,因为我的项目是 spring boot 框架,我直接使用了 @Transactional 注解,但经过我的测试,无法做到回滚。官方文档提到,对 sql 事务的支持必须在 TRANSACTIONAL_SNAPSHOT 模式之下,网上却不给出与 mybatis 集成的例子。谷歌上的基本都是指把 ignite 做为 mybatis 的二级缓存,相关内容实在是少。所以我不知道是不是我这种用法有问题,还是 ignite 目前对 sql 事务支持还是很鸡肋。
还请您赐教,感谢~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1.如果不想写这个模式名,嫌麻烦
可以通过调用setSqlSchema("PUBLIC")方法,这样就和普通SQL写法一样了
2.https://liyuj.gitee.io/doc/java/Key-ValueDataGrid.html#_3-8-3-多版本并发控制
如果使用JDBC,除了缓存的配置,其他和普通数据库事务处理没啥区别,你为什么有问题,我不清楚。