Java Hibernate 3.6.0和JPA 2.0的InvalidClassException
我刚刚开始使用Hibernate3.6.0和JPA2.0,遇到了一些问题 我在一些查询中遇到InvalidClassException。顺便说一下,我正在使用hibernate jpamodelgen的元模型 也就是说,下面的一个运行良好:Java Hibernate 3.6.0和JPA 2.0的InvalidClassException,java,hibernate,jpa,Java,Hibernate,Jpa,我刚刚开始使用Hibernate3.6.0和JPA2.0,遇到了一些问题 我在一些查询中遇到InvalidClassException。顺便说一下,我正在使用hibernate jpamodelgen的元模型 也就是说,下面的一个运行良好: CriteriaBuilder cb = getCriteriaBuilder(); CriteriaQuery<UserEntity> cq = getCriteriaQuery(cb); cq.where(cb.equal(cq.from(U
CriteriaBuilder cb = getCriteriaBuilder();
CriteriaQuery<UserEntity> cq = getCriteriaQuery(cb);
cq.where(cb.equal(cq.from(UserEntity.class).get(UserEntity_.username), username));
此异常表示类
BaseEntity
的对象以序列化形式存储在数据库中,无法反序列化,因为该类已更改
以序列化形式存储对象是Hibernate在无法确定对象应如何存储(即未配置)时使用的一种回退策略。通常情况下,这不是人们想要的行为
可能在您的情况下,这意味着实体之间的某个关系(
UserGroupEntry
或UserGroupEntry
)配置不正确。还剩下一些旧数据。当我使用JPA1.0和更旧的Hibernate版本时创建的数据。当我从数据库中删除数据时,一切正常。
CriteriaBuilder cb = getCriteriaBuilder();
CriteriaQuery<UserGroup> cq = getCriteriaQuery(cb);
cq.where(cb.equal(cq.from(UserGroup.class).join(UserGroup_.entries).join(UserGroupEntry_.user).get(UserEntity_.id), user.getId()));
java.io.InvalidClassException: com.ptm.model.BaseEntity; local class incompatible: stream classdesc serialVersionUID = 7662749495871325837, local class serialVersionUID = 8176072949097236524
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:579)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1600)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1513)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1600)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1513)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1749)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
at org.hibernate.util.SerializationHelper.doDeserialize(SerializationHelper.java:244)
at org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:306)
at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.fromBytes(SerializableTypeDescriptor.java:130)
at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:116)
at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:39)
at org.hibernate.type.descriptor.sql.VarbinaryTypeDescriptor$2.doExtract(VarbinaryTypeDescriptor.java:62)
at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:249)