hashmapper的使用以及json字符串与普通字符串的差异

来源:互联网 发布:淘宝店怎么提升销量 编辑:程序博客网 时间:2024/05/01 09:24

使用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的优势

0 0
原创粉丝点击