Java Hibernate 3.6.0和JPA 2.0的InvalidClassException

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

我刚刚开始使用Hibernate3.6.0和JPA2.0,遇到了一些问题

我在一些查询中遇到InvalidClassException。顺便说一下,我正在使用hibernate jpamodelgen的元模型

也就是说,下面的一个运行良好:

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)