hashmapper的使用以及json字符串与普通字符串的差异
使用hashmapper时要转化的类一定要有无参构造函数
使用hashmapper将实体类与map互转的实现
public QuestShow getQuest(String key, List<String> fields) {
if (stringRedisTemplate.hasKey(getKey(key)) == false)
return null;
fields.add("subject");
fields.add("section");
fields.add("sid");
if (fields.contains("think")) {
fields.add("QTDicFormular");
fields.add("QTDicPoint");
}
if (fields.contains("knowledges"))
fields.add("videos");
List<String> list = createHashOperation().multiGet(getKey(key), fields);
Map<String, String> map = new HashMap<String, String>();
for (int i = 0; i < fields.size(); i++) {
String str = list.get(i) != null ? list.get(i) : "";
map.put(fields.get(i), str);
}
return new QuestShow(createHashMapper().fromHash(map));
// return new QuestShow(new QuestShows(map));
}
public void putQuest(String key, QuestShow quest) {
Map<String, String> map = createHashMapper().toHash(new QuestShows(quest));
createHashOperation().putAll(getKey(key), map);
stringRedisTemplate.expire(getKey(key), 6, TimeUnit.HOURS);
}
hashmapper是Spring data redis 中提供的类,其基于apache common beanutils,在使用时要导入jar包
<dependency>
<groupId>commons-beanUtils</groupId>
<artifactId>commons-beanUtils</artifactId>
<version>1.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-collections/commons-collections -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
hashmapper在转换实体类时只能实现一层转化,如果实体类有多层机构,则在转出时无法实现。这时需要先将实体类中的多层结构转化为json在转map
这与redis的序列化工具类型无关(是Stringseriablizer还是jdk无关)
理解json和普通String的优势

浙公网安备 33010602011771号