我正在探索Ignite事务性缓存。我已经有了一段代码,它对JDBC使用Spring事务管理。我想使用Spring缓存抽象在代码中集成ignite事务性缓存。
我遇到了SpringTransactionManager(由Ignite提供),但我无法找到正确的使用方法。本质上,我想做一些类似的事情:
@Transactional
@Cacheable(cacheNames="personcache", key="#person.id", unless="#result == null")
public Person create(Person person) {
String queryPerson = "insert into Person (id, name) values (?,?)";
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate.update(queryPerson, new Object[] { person.getId(), person.getName() });
System.out.println("Inserted into Person Table Successfully");
return person;
}
当事务提交时,数据库和缓存应该一起提交。为此,Ignite文档提到了使用SpringTransactionManager https://www.gridgain.com/sdk/pe/latest/javadoc/org/apache/Ignite/transactions/spring/SpringTransactionManager.html。
谁能给我指路吗?一个例子会很有帮助。谢了!
如果为Spring提供SpringTransactionManager
,它将围绕用@transactional
注释的方法创建一个Ignite事务。首先,我相信在这种情况下甚至不会启动DB事务。即使这样,它也将独立于Ignite的。
我看到了两种解决方案:
JTatransactionManager
,它也会知道DB事务。@cacheable
,而是通过cacheStore
[2][3]使用Integration Ignite with DB并使用write-through。在本例中,Ignite将负责事务一致性。问题内容: 我刚刚开始使用spring和hibernate进行项目。我的DAO图层类扩展了HibernateDaoSupport。我们没有使用注释。之前,我们使用了struts,因此我们使用了Session类提供的getTransaction,commit,rollback ..方法。我的要求非常简单,对于所有DAO类,如果有异常,则回滚,否则提交。请提出介绍spring交易管理的最简单方法。 问
我试图将Spring引导指南中的管理事务示例扩展到两个数据源,但是@事务注释似乎只适用于其中一个数据源。 在"Application.java"中,我添加了两个数据源及其Jdbc模板的bean。在"BookingService.java"中,我使用了属于第二个数据源的JdbcTemboard。 这是我的“Application.java”: 下面是“BookingService.java”: 这些
17. 事务管理
数据库的事务就是将任意多个SQL语句看作一个整体,只有这些SQL语句都成功执行,DBMS才会保存这些SQL语句对数据库的修改(事务提交)。否则,数据库将恢复到执行SQL语句之前的状态(事务回滚)。大多数DBMS都支持两种事务模式:隐式模式和显式模式。当执行每一条SQL语句时,无需进行事务提交,就可以直接将修改结果保存到数据库中。这叫做隐式事务模式。显式模式必须使用相应的语句或命令开起事务、提交事务
主要内容:一、事务(Transaction),二、MySql中的应用,三、源码分析,四、总结一、事务(Transaction) 事务是什么?按照书上说的就是系统的一套操作为了保持数据的完整性必须符合ACID的特性,即原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)、 持久性(Durability)。原子性比较好理解,操作要么全执行完成,要么全不执行完,实现这种方式就要支持回滚操作。而一致性指的是事务在改变状态时,要保证所有的访问得到的结果是相同的。一
事务处理(transaction processing) 可以用来维护数据的完整性,保证SQL的操作要么完全执行,要么完全不执行,如果发生错误就进行撤销。 保证数据的完整性。 保证数据不受外影响。 事务处理的几道术语 事务(transaction) 一组SQL语句 退回(rollback)撤销执行SQL语句的过程 提交(commit) 将为执行的SQL语句写入数据库表 保留点(savepoint)