Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法反序列化org.hibernate.type.SerializationException_Hibernate_Serialization - Fatal编程技术网

无法反序列化org.hibernate.type.SerializationException

无法反序列化org.hibernate.type.SerializationException,hibernate,serialization,Hibernate,Serialization,请帮忙-我的申请一直到今天都很顺利。今天我得到了一个异常“无法反序列化”。java.io.eofException。有时我能得到数据。问题是间歇性的。这里可能有什么问题 @Entity @Cacheable @Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL) public class Filter { private int id; private String name; private User user; p

请帮忙-我的申请一直到今天都很顺利。今天我得到了一个异常“无法反序列化”。java.io.eofException。有时我能得到数据。问题是间歇性的。这里可能有什么问题

@Entity
@Cacheable
@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
public class Filter {
private int id;
    private String name;
    private User user;
    private NameValue[][] filterMap;


    @Id
    @GeneratedValue(strategy=GenerationType.SEQUENCE)
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    @ManyToOne(
            targetEntity = User.class
    )
    @JoinColumn(name="userName")
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    @Lob
        public NameValue[][] getFilterMap() {
        return filterMap;
    }
    public void setFilterMap(NameValue[][] filterMap) {
        this.filterMap = filterMap;
    }

这可能是因为对象可以缓存,并且您必须已将缓存配置为溢出到磁盘(或任何其他存储)

当您尝试序列化或反序列化该类时,会出现以下一种或多种情况:

  • 该类或任何字段(如User)都未实现可序列化
  • 自上次部署以来,该类发生了更改,java生成了一个新的serialVersionUID。当java尝试加载以前在磁盘缓存中的对象时,serialVersionUID不匹配,并引发错误
  • 您使用的是不同的JVM,它生成不同的
    serialVersionUID

  • 您必须为Hibernate实体实现可序列化接口,并保持默认值
    private static final long serialVersionUID=1L
    。它的值可以是任何东西,不一定只有1L

    例如:


    我面对的这个问题得到了解决,
    对我来说,它解决了db端手动插入一些行后,其余的行插入Hibernate,所以当检索时间这个错误引发的解决方案很简单删除整个db数据或手动输入的行后,通过Hibernate新插入,然后检索数据(标准)这一次没有例外。-Mallikarjun Chinta

    您能提供更多详细信息吗?可能是stack traceHi Augusto!非常感谢您的回复。实际上,我也在使用hajdbc。我们在生产中启用了二级缓存真org.hibernate.cache.infinispan.InfinispanRegionFactory假我不完全理解缓存的用法。但是也许我会尝试禁用它。嗨,Jess,尝试使Hibrate类可序列化,这可能会解决问题。
    public class Med implements Serializable {
       private static final long serialVersionUID = 1L;
    }