java - 使用 Spring JDBC 实现一级缓存
问题描述
我想实现一个特定于正在使用的事务的缓存(即来自数据库查询的缓存结果)。如何才能做到这一点?
- 将 JTA 事务与 JDBC 一起使用?
- 在没有任何外部库的情况下使用带有 JDBC 的 JTA 事务?
例如
我在服务中创建了一个函数。
@Transcational()
public void get(String id) {
dao.get(id);
}
我称创建函数为 dao。
public void get(String id) {
final String sql = "SELECT * FROM TABLE_NAME WHERE id = ?";
try {
Object someObject;
// TODO Here I want to check, If I have this item in cache specific to this transcation or not
if (someObject == null) {
someObject = template.queryForObject(sql, new Object[] {id}, someMapper);
// TODO Here, I want to put the item in a cache that is specific to this transaction.
}
在这种情况下,如何实现特定于事务的缓存?无需迁移到 JPA。
解决方案
推荐阅读
- python - 使用 Python 将 sqlite3 数据库中的图像显示到 QTableWidget 中的列
- sql - SQL - 基于不同列项的计数
- javascript - 无法在 Fire Cloud Firestore 中获取集合的文档
- java - springboot 中的@Value("${welcome}) 抛出非法参数异常,无法解析占位符
- java - java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“int android.view.View.getBottom()”
- bash - 用于签出、拉取、修剪提取和删除的 Git 短命令
- database - Grakn 数据验证和更新架构
- java - QueryDsl 不会为 git 子模块的 @Entity 类生成 q-classes
- mysql - 如何从两个不同的表中获取两个不同列的总和并将它们分组
- java - Spring data couchbase 4.0.0 - 使用列表保存对象始终为空