设置serialVersionUID,缓存里的新增字段被赋默认值

3/8/2017来源:ASP.NET技巧人气:601

问题:

         某项目的game实体增加video_address_ali 字段,在运营后台赋值后,过5分钟,运营后台发现video_address_ali 字段值为空。

 

原因:

  (1)       game实体设置了serialVersionUID= 2011050316490000L;  

   (2)      运营后台获取的是缓存里的game对象,缓存时间为5分钟。5分钟过后,另一个工程的请求触发重新设置game实体缓存

                 由于serialVersionUID 使得缓存实体的新增字段 video_address_ali 为默认值(空字符串)。故运营后台获取到空的video_address_ali  值

 

解决办法:

   (1)运营后台获取实体,不从缓存获取,从数据库获取。

    (2)2个工程的缓存应该分开,耦合两个工程的缓存设计不合理。