Reputation: 131
Please help- My application was working fine until today. Today I got the exception "could not deserialize". java.io.eofException. And sometimes I was able to get the data. The problem was intermittent. What could be the issue here?
@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;
}
Upvotes: 4
Views: 27596
Reputation: 21
This issue i faced and got solution , for me it's resolved db side manually inserted some rows after rest of the rows inserted Hibernate so while retrieving time this error raised solution is simple remove db data entire or manually entered rows freshly insert through hibernate after then retrieve data(criteria) this time no exception. - Mallikarjun Chinta
Upvotes: 0
Reputation:
You have to implement Serializable interface for Hibernate entity and keep default private static final long serialVersionUID = 1L
. Its value can be anything, not necessarily 1L only.
eg:
public class Med implements Serializable {
private static final long serialVersionUID = 1L;
}
Upvotes: 1
Reputation: 29827
This probably happens because the object can be cached, and you must have configured the cache to overflow to disk (or any other storage).
The problem happens when you try to serialize or deserialize the class, and one or more of the following happen:
serialVersionUID
Upvotes: 6