我有两台机器:
A) Windows XP、JDK 1.7.45 B) Windows Server 2003、JDK 1.7.45
在机器中,AI 可以成功地将对象序列化到文件系统及其子系统并反序列化。
在机器 B 中,当我反序列化时,子对象丢失了。在任何阶段都不会抛出异常。
如果我将序列化文件从 A 复制到 B,则 B 中的反序列化会很好地创建子对象。
这表明B中的序列化存在问题。
非常简单的对象不会发生此问题。但是,当我使用带有 JPA 注释的对象时,就会出现问题。
@Entity
@Table(name="...")
@NamedQuery(name="Category.findAll", query="SELECT c FROM Category c")
public class Category implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="...")
private long id;
@Transient
private List<Category> subCategories; //These go missing
...
}
此问题仅发生在某些而非所有 JPA 实体类中。
知道可能是什么原因造成的吗?JPA 实体可以无问题地序列化吗?我的最终目标是在 Couchbase 中缓存 JPA 实体。这在 A 中有效,但在 B 中失败。即使是简单的基于磁盘的序列化在 B 中也存在问题,如此处所述。