为什么de.hybris.platform.core.model.product.ProductModel中没有serialVersionUID?

时间:2017-01-04 06:32:49

标签: hybris

为什么de.hybris.platform.core.model.product.ProductModel中没有serialVersionUID?

我们在从savedValueEntry反序列化产品模型时面临问题。

2 个答案:

答案 0 :(得分:0)

因为它不是强制性的。

  

如果可序列化类没有显式声明serialVersionUID,则序列化运行时将根据类的各个方面计算该类的默认serialVersionUID值,如Java(TM) Object Serialization Specification中所述。

除非您更改编译器,否则不应该对其进行反序列化。

我实际上并不理解你对savedValueEntry的问题。可能存在混淆,对象没有被序列化,但它们包含的值被加密并保存在数据库中。

答案 1 :(得分:0)

serialVersionUID表示特定时间点的班级版本。如果修改了类,则serialVersionUID应该更改。因此,当JDK反序列化同一个类的对象时,它知道要将其反序列化的类的哪个版本。

但是对于hybris Item模型类,每次更改项类型和/或其属性时,它都会有一个新的serialVersionUID,它与早期版本不同。因此,将一个serialVersionUID指定给一个旨在经常更改的Item模型类没有任何意义。

简而言之,serialVersionUID主要用于需要通过网络传输对象或需要显式反序列化对象的地方。 hybris产品型号并非如此。

当您遇到检索savedEntry值的问题时,您能否指出我的具体情况