今天自己封装memcache批量插入的时候遇到一个问题。当批量插入一个实体对象的时候,插入memcache的value为一个对象时。插入竟然有问题,插入不进去。后来多次查找,多方询问。终于找到了。
原来是实体对象没有序列化。把实体对象序列化后插入成功,返回回来一个的value是一个object。
package com.payeco.memcache; import java.io.Serializable; import java.sql.Timestamp; public class StudentDemo implements Serializable{ private static final long serialVersionUID = 8589285238381135252L; private int id; private String name; private String sex; private int age; private Timestamp birthday; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Timestamp getBirthday() { return birthday; } public void setBirthday(Timestamp birthday) { this.birthday = birthday; } @Override public String toString() { return String.format("id:%d,name:%s,sex:%s,age:%d,birthday:%s", id, name, sex, age, birthday); } }
后来进行强转之后就没有问题了。
Map<String, Object> mapentity=client.getMulti(li); for (Map.Entry<String, Object> string : mapentity.entrySet()) { System.out.println("key-->"+string.getKey()); if (string.getValue() instanceof StudentDemo) { StudentDemo student=(StudentDemo) string.getValue(); System.out.println(student.getId()+"<--value-->"+student); } }