前几天加入缓存的时候 ,报了一个错

org.springframework.data.redis.serializer.SerializationException: Cannot serialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer; nested exception is java.io .NotSerializableException: 
这是报实体不能序列化的问题   但是我看了我的缓存的model是实现了Serializable了的
1 public class ListCacheModel implements Serializable {
2 
3     /**
4      * 
5      */
6     private static final long serialVersionUID = -1664739780353060565L;
7 }
public class ObjActionDetailRes implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	
	private PositionRes position=new PositionRes();
	
	private WorksObjActionRes works=new WorksObjActionRes();
	
	private SerialContentActionRes serialContent=new SerialContentActionRes();
	
	private SerialActionRes serial=new SerialActionRes();
	
	private EventMainActionRes eventMain=new EventMainActionRes();
	
	private EventActionRes event=new EventActionRes();
	
	private CircleActionRes circle=new CircleActionRes();
	
	private DouJinShiActionRes doujinshi=new DouJinShiActionRes();
	}

 这是我需要加入缓存的实体类。我一直以为是我的实体太复杂了。然后redis不能进行一个复杂的序列化。大神告诉我的 我的报错,如果不能进行自动序列化,就进行手动序列化。就是在每一个实体后面实现Serializable。后面我发现我不能序列化的原因,是因为ObjActionDetailRes中里面的SerialActionRes,WorksObjActionRes这些我封装用来返回的Res类并没有进行序列化。才导致的。当我实现了Serializable的时候 我们的eclipes是会报Warning的。因为我们没有自定义的SerialVersionUID.我一直都不明白这个常量是什么意思

	private static final long serialVersionUID = 1L;

 我发现这个东西就是用来标明当前Class的版本号。

详细的一些东西 可以查看http://www.cnblogs.com/haimishasha/p/5058085.html

           http://www.cnblogs.com/haimishasha/p/5058091.html

           http://www.cnblogs.com/haimishasha/p/5058089.html