希望findById增加findByIdByCache方法

findById的使用频率非常高,针对这个方法做缓存的话,每次都要覆盖model方法,即使写service层也多了很多冗余代码,所以希望在jfinal包里增加这个方法

目前做法:覆盖model的方法

@Override
public Site findById(Object id) {
  Site site = CacheKit.get("site", "id:" + id);
  if (site == null) {
    site = super.findById(id);
    CacheKit.put("site", "id:" + id, site);
  }
  return site;
}

建议jfinal库里提供如下方法:

public M findByIdByCache(String cacheName, Object key, Object idValue) {
    ....
}

不只是这一个方法,希望针对model层对cache优化的更极致些,比如byids系列等

评论区

JFinal

2020-03-22 23:13

很早就想添加一个这种方法,但名字不好取

findByIdByCache 这个名字不太好

其次,有 findFristByCache 可以在一定程度上代替这个方法的功能。稍微多一点点代码

如果你有更好的名字,可以提给我,可以添加进去

JFinal

2020-03-22 23:15

目前你在业务层的用法,完全可以改成:
public Site findById(Object id) {
return dao.findFristByCache("site", id, "select * from site where id = ? ", id);
}

虽然代码比你建议的 findByIdByCache 稍多,但比你目前的用法能省很多代码

热门反馈

扫码入社