我正在使用 Redis(通过 redisson)我有一个 DTO 类,我正在将反序列化序列化为 Redis,我使用的编解码器是:org.redisson.codec.FstCodec尽管在类的 DTO 类中显式设置了:serialVersionUID,但当我将类移动到不同的命名空间时,我得到以下异常:java.io.IOException: java.lang.RuntimeException: class not found CLASSNAME:db.data.coins.CoinDTO loader:jdk.internal.loader.ClassLoaders$AppClassLoader@6ed3ef1 在示例中,我从包中移动了类:db.data.coins.CoinDTO打包:dto链接到 fstCodec github:关联package dto; // altering packageimport java.io.Serializable;import java.sql.Timestamp;public class CoinDTO implements Serializable { static final long serialVersionUID = 1L; private int id; private double amount; private Timestamp timestamp; //Getters and setters}我想更改包并仍然从 Redis 获取课程。提前谢谢了附言我目前处理它的方式是使用json序列化对象,然后将其设置为redis,但这只是双重序列化,我想避免这种情况
1 回答

倚天杖
TA贡献1828条经验 获得超3个赞
尽管在类的 DTO 类中显式设置了:serialVersionUID,但当我将类移动到不同的命名空间时,我得到以下异常:
如果对象的包或类名已更改,则无法反序列化对象。
我目前处理它的方式是使用 json 序列化对象,然后将其设置为 redis
您可以将 Redisson 设置为 Jackson,如下所示codec = org.redisson.codec.JsonJacksonCodec
添加回答
举报
0/150
提交
取消