在使用JPA+SQL Server2000的时候,有时候由Netbeans产生的实体类不能使用,甚至连“findALL”这样的命名查询都不能执行,错误信息是不能串行化。
org.hibernate.type.SerializationException: could not deserialize
at org.hibernate.util.SerializationHelper.deserialize(SerializationHelpe
r.java:211)
at org.hibernate.util.SerializationHelper.deserialize(SerializationHelpe
r.java:234)
经过分析,这类问题大多由数据库的数据类型Image等大数据块问题引起,解决办法是手工修改实体类定义,将其修改为字节数组。
原定义可能是这样的:
@Lob
@Column(name = "imgdata")
private Serializable imgdata;
将其修改为
@Lob
@Column(name = "imgdata")
private byte[] imgdata;
org.hibernate.type.SerializationException: could not deserialize
at org.hibernate.util.SerializationHelper.deserialize(SerializationHelpe
r.java:211)
at org.hibernate.util.SerializationHelper.deserialize(SerializationHelpe
r.java:234)
经过分析,这类问题大多由数据库的数据类型Image等大数据块问题引起,解决办法是手工修改实体类定义,将其修改为字节数组。
原定义可能是这样的:
@Lob
@Column(name = "imgdata")
private Serializable imgdata;
将其修改为
@Lob
@Column(name = "imgdata")
private byte[] imgdata;