请帮助 - 我的申请工作正常至今。今天我得到了例外"无法反序列化"。 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;
}
答案 0 :(得分:4)
这可能是因为对象可以被缓存,并且您必须已将缓存配置为溢出到磁盘(或任何其他存储)。
当您尝试序列化或反序列化该类时会发生此问题,并且会发生以下一种或多种情况:
serialVersionUID
答案 1 :(得分:1)
您必须为Hibernate实体实现Serializable接口并保持默认private static final long serialVersionUID = 1L
。它的价值可以是任何东西,不一定只有1L。
例如:
public class Med implements Serializable {
private static final long serialVersionUID = 1L;
}
答案 2 :(得分:0)
这个问题我面临并得到了解决方案, 对我来说,解析数据库端手动插入一些行后插入Hibernate的其余行,所以在检索时间这个错误引发解决方案是简单删除db数据整个或手动输入的行新填充通过hibernate之后检索数据(条件)这次也没有异常。 - Mallikarjun Chinta