1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package issues.gh324;
17
18 import org.apache.ibatis.cache.impl.PerpetualCache;
19 import org.jspecify.annotations.Nullable;
20
21 public class ObservableCache extends PerpetualCache {
22
23 private static ObservableCache instance;
24
25 public static ObservableCache getInstance() {
26 return instance;
27 }
28
29 private int requests = 0;
30
31 public int getRequests() {
32 return requests;
33 }
34
35 public int getHits() {
36 return hits;
37 }
38
39 private int hits = 0;
40
41 public ObservableCache(String id) {
42 super(id);
43 instance = this;
44 }
45
46 @Override
47 public void putObject(Object key, Object value) {
48 super.putObject(key, value);
49 }
50
51 @Override
52 public @Nullable Object getObject(Object key) {
53 Object answer = super.getObject(key);
54
55 if (key.toString().contains("select id, name from NameTable where id = ?")) {
56 requests++;
57
58 if (answer != null) {
59 hits++;
60 }
61 }
62
63 return answer;
64 }
65
66 @Override
67 public void clear() {
68 requests = 0;
69 hits = 0;
70 super.clear();
71 }
72 }