java 不能反序列化_java – Hibernate:无法反序列化 – 无效的...

关于我如何解决这个错误的任何想法?我正在使用Spring JPA与Hibernate.下面有必要的细节.

实体类1:

@Entity

@Table(name = "ways")

@TypeDef(name = "hstore", typeClass = HstoreUserType.class)

@Cacheable

public class Way {

/**

* Primary key for the row in table.

*/

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

@Column(name = "id")

private Long id;

/**

* The ID to represent it across the system.

* Used for preserving historical information.

*/

@Column(name = "way_id")

private Long wayId;

/**

* The version of the way this Object represents.

*/

@Column(name = "version")

private Integer version;

/**

* The {@link User} that edited this version.

*/

@OneToOne

@PrimaryKeyJoinColumn(name = "user_id")

private User user;

/**

* Timestamp when this version of the Way was edited.

*/

@Column(name = "tstamp")

@Temporal(TemporalType.TIMESTAMP)

private Date timestamp;

/**

* The changeset that this version of the way belongs to.

*/

@Column(name = "changeset_id")

private Long changesetId;

/**

* All the tags this Way contains.

*/

@Type(type = "hstore")

@Column(name = "tags", columnDefinition = "hstore")

private Object2ObjectOpenHashMap tags = new Object2ObjectOpenHashMap();

@Column(name = "bbox")

private Geometry bbox;

@Column(name = "linestring")

private Geometry linestring;

@Column(name = "nodes")

private Long[] nodes;

// getters and setters

}

用户实体类:

@Entity

@Table(name = "users")

@Cacheable

public class User {

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

@Column(name = "id")

private Long id;

@Column(name = "name", unique = true)

private String name;

// getters and setters

}

和堆栈跟踪:

堆栈跟踪很大.我正在粘贴整个堆栈跟踪以供参考和快速TL; DR在这里:

javax.persistence.PersistenceException: org.hibernate.type.SerializationException: could not deserialize

Caused by: org.hibernate.type.SerializationException: could not deserialize

Caused by: java.io.StreamCorruptedException: invalid stream header: 30313033

全堆栈跟踪如下:

javax.persistence.PersistenceException: org.hibernate.type.SerializationException: could not deserialize

at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1361)

at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1289)

at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:261)

at org.hibernate.ejb.criteria.CriteriaQueryCompiler$3.getResultList(CriteriaQueryCompiler.java:260)

at org.springframework.data.jpa.repository.support.SimpleJpaRepository.findAll(SimpleJpaRepository.java:250)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:606)

at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFac

at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySuppo

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.data.jpa.repository.support.LockModeRepositoryPostProcessor$LockModePopulatingMethodIntercceptor.invoke(LockModeReava:92)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)

at com.sun.proxy.$Proxy36.findAll(Unknown Source)

at com.osmrecommend.persistence.service.WayPersistenceServiceImpl.getAllWays(WayPersistenceServiceImpl.java:32)

at com.osmrecommend.dao.WayDAO.getAllWays(WayDAO.java:37)

at com.osmrecommend.cbf.TFIDFModelBuilder.get(TFIDFModelBuilder.java:90)

at com.osmrecommend.cbf.TFIDFModelBuilder.get(TFIDFModelBuilder.java:36)

at org.grouplens.grapht.util.MemoizingProvider.get(MemoizingProvider.java:59)

at org.grouplens.lenskit.inject.StaticInjector.instantiate(StaticInjector.java:130)

at org.grouplens.lenskit.inject.StaticInjector.apply(StaticInjector.java:137)

at org.grouplens.lenskit.inject.StaticInjector.apply(StaticInjector.java:47)

at org.grouplens.lenskit.eval.traintest.ComponentCache$NodeInstantiator.call(ComponentCache.java:166)

at com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4792)

at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3599)

at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2379)

at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2342)

at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2257)

at com.google.common.cache.LocalCache.get(LocalCache.java:4000)

at com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4789)

at org.grouplens.lenskit.eval.traintest.ComponentCache$Instantiator.apply(ComponentCache.java:126)

at org.grouplens.lenskit.eval.traintest.ComponentCache$Instantiator.apply(ComponentCache.java:104)

at org.grouplens.lenskit.inject.RecommenderInstantiator$1.apply(RecommenderInstantiator.java:109)

at org.grouplens.lenskit.inject.RecommenderInstantiator$1.apply(RecommenderInstantiator.java:99)

at org.grouplens.lenskit.inject.RecommenderInstantiator.replaceShareableNodes(RecommenderInstantiator.java:188)

at org.grouplens.lenskit.inject.RecommenderInstantiator.instantiate(RecommenderInstantiator.java:99)

at org.grouplens.lenskit.eval.traintest.LenskitEvalJob.buildRecommender(LenskitEvalJob.java:74)

at org.grouplens.lenskit.eval.traintest.TrainTestJob.runEvaluation(TrainTestJob.java:117)

at org.grouplens.lenskit.eval.traintest.TrainTestJob.call(TrainTestJob.java:101)

at org.grouplens.lenskit.eval.traintest.JobGraph$JobNode.call(JobGraph.java:116)

at org.grouplens.lenskit.eval.traintest.JobGraph$JobNode.call(JobGraph.java:102)

at org.grouplens.lenskit.util.parallel.SequentialTaskGraphExecutor.execute(SequentialTaskGraphExecutor.java:37)

at org.grouplens.lenskit.eval.traintest.TrainTestEvalTask.runEvaluations(TrainTestEvalTask.java:468)

at org.grouplens.lenskit.eval.traintest.TrainTestEvalTask.perform(TrainTestEvalTask.java:398)

at org.grouplens.lenskit.eval.traintest.SimpleEvaluator.call(SimpleEvaluator.java:313)

at com.osmrecommend.app.OSMRecommendEval.main(OSMRecommendEval.java:94)

Caused by: org.hibernate.type.SerializationException: could not deserialize

at org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:262)

at org.hibernate.internal.util.SerializationHelper.deserialize(SerializationHelper.java:306)

at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.fromBytes(SerializableTypeDescriptor.java:131)

at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:117)

at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:39)

at org.hibernate.type.descriptor.sql.VarbinaryTypeDescriptor$2.doExtract(VarbinaryTypeDescriptor.java:67)

at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:65)

at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:269)

at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:265)

at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:238)

at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:357)

at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2695)

at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1552)

at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1484)

at org.hibernate.loader.Loader.getRow(Loader.java:1384)

at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:640)

at org.hibernate.loader.Loader.doQuery(Loader.java:856)

at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:289)

at org.hibernate.loader.Loader.doList(Loader.java:2463)

at org.hibernate.loader.Loader.doList(Loader.java:2449)

at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2279)

at org.hibernate.loader.Loader.list(Loader.java:2274)

at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:470)

at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)

at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:196)

2014-04-13 17:35:49 INFO persistence.service.WayPersistenceServiceImpl:37 - All ways fetched in 331s

at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1115)

at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)

at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:252)

... 51 more

Caused by: java.io.StreamCorruptedException: invalid stream header: 30313033

at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:804)

at java.io.ObjectInputStream.(ObjectInputStream.java:299)

at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.(SerializationHelper.java:328)

at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.(SerializationHelper.java:318)

at org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:237)

... 78 more

更新:

我更新了Ways实体类到以下,但仍然出现错误:

@Entity

@Table(name = "ways")

@Cacheable

public class Way implements Serializable {

/**

*

*/

private static final long serialVersionUID = -7941769011539363185L;

/**

* Primary key for the row in table.

*/

@Id

@GeneratedValue(strategy = GenerationType.AUTO)

@Column(name = "id")

private Long id;

/**

* The ID to represent it across the system.

* Used for preserving historical information.

*/

@Column(name = "way_id")

private Long wayId;

/**

* The version of the way this Object represents.

*/

@Column(name = "version")

private Integer version;

/**

* The {@link User} that edited this version.

*/

@OneToOne

@PrimaryKeyJoinColumn(name = "user_id")

private User user;

/**

* Timestamp when this version of the Way was edited.

*/

@Column(name = "tstamp")

@Temporal(TemporalType.TIMESTAMP)

private Date timestamp;

/**

* The changeset that this version of the way belongs to.

*/

@Column(name = "changeset_id")

private Long changesetId;

/**

* All the tags this Way contains.

*/

@Column(name = "tags")

private String tags;

@Column(name = "bbox")

private Geometry bbox;

@Column(name = "linestring")

private Geometry linestring;

@Column(name = "nodes")

@ElementCollection(targetClass=Long.class)

private List nodes;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值