2014-03-13 47 views
3

在Spring MVC中的應用。只要我的應用程序中的任何數據驅動的URL被調用,即使我只在一個關係中更改FetchType,也會引發錯誤。休眠流使用Hibernate,我得到一個<code>could not deserialize</code>錯誤,當我在兩個實體,<code>Encounter</code>和<code>Referral</code>之間的關係<code>OneToMany</code>改變<code>FetchType</code>到<code>EAGER</code>損壞除外

注意:此發佈的部分代碼已放置在文件共享網站上,您可以通過單擊下面的鏈接訪問該網站。

還要注意:我試過FetchType.Lazy,但觸發有關failing to lazily initiate... no session錯誤。所以我需要使用FetchType.EAGER

相關的屬性定義在Encounter是:

@OneToMany(fetch=FetchType.EAGER, cascade = CascadeType.ALL, mappedBy="encounter") 
private Set<Referral> referrals = new HashSet<Referral>(); 

Encounter實體整個代碼可以在文件共享網站by clicking on this link讀取。

相關的屬性定義在Referral是:

@ManyToOne(fetch=FetchType.EAGER) 
@JoinColumn(name="encounter_id") 
protected Encounter encounter; 

Referral實體整個代碼可以在文件共享網站by clicking on this link讀取。

下面是完整的堆棧跟蹤:

Hibernate: select referrals0_.encounter_id as encounte5_11_13_, referrals0_.id as id1_32_13_, referrals0_.id as id1_32_12_, referrals0_.contact_id as contact4_32_12_, referrals0_.scheduled_date as schedule2_32_12_, referrals0_.encounter_id as encounte5_32_12_, referrals0_.office_id as office6_32_12_, referrals0_.patient_id as patient7_32_12_, referrals0_.provider_id as provider8_32_12_, referrals0_.reason as reason3_32_12_, officecont1_.id as id1_17_0_, officecont1_.first_name as first2_17_0_, officecont1_.last_name as last3_17_0_, facilityad2_.id as id1_13_1_, facilityad2_.address as address2_13_1_, facilityad2_.city as city3_13_1_, facilityad2_.company_id as company7_13_1_, facilityad2_.facilityname as facility4_13_1_, facilityad2_.isHQ as isHQ5_13_1_, facilityad2_.type_id as type8_13_1_, facilityad2_.state_id as state9_13_1_, facilityad2_.zip as zip6_13_1_, providerco3_.id as id1_23_2_, providerco3_.name as name2_23_2_, locationty4_.id as id1_16_3_, locationty4_.name as name2_16_3_, state5_.id as id1_33_4_, state5_.name as name2_33_4_, patient6_.id as id1_21_5_, patient6_.first_name as first2_21_5_, patient6_.last_name as last3_21_5_, patient6_.date_of_birth as date4_21_5_, patient6_.ethnic_id as ethnic5_21_5_, patient6_.languagecode as language6_21_5_, patient6_.race_id as race7_21_5_, patient6_.sex_id as sex8_21_5_, ethnicity7_.id as id1_12_6_, ethnicity7_.name as name2_12_6_, language8_.code as code1_15_7_, language8_.name as name2_15_7_, race9_.id as id1_31_8_, race9_.name as name2_31_8_, gender10_.id as id1_14_9_, gender10_.name as name2_14_9_, provider11_.id as id1_30_10_, provider11_.first_name as first2_30_10_, provider11_.last_name as last3_30_10_, provider11_.title_id as title4_30_10_, providerti12_.id as id1_29_11_, providerti12_.name as name2_29_11_ from referrals referrals0_ left outer join officeContacts officecont1_ on referrals0_.contact_id=officecont1_.id left outer join facilityAddresses facilityad2_ on referrals0_.office_id=facilityad2_.id left outer join providerCompanies providerco3_ on facilityad2_.company_id=providerco3_.id left outer join locationTypes locationty4_ on facilityad2_.type_id=locationty4_.id left outer join states state5_ on facilityad2_.state_id=state5_.id left outer join patients patient6_ on referrals0_.patient_id=patient6_.id left outer join ethnicity ethnicity7_ on patient6_.ethnic_id=ethnicity7_.id left outer join languages language8_ on patient6_.languagecode=language8_.code left outer join race race9_ on patient6_.race_id=race9_.id left outer join gender gender10_ on patient6_.sex_id=gender10_.id left outer join providers provider11_ on referrals0_.provider_id=provider11_.id left outer join provider_titles providerti12_ on provider11_.title_id=providerti12_.id where referrals0_.encounter_id=? 
WARN LoadContexts - HHH000100: Fail-safe cleanup (collections) : [email protected]e55c<[email protected]> 
WARN CollectionLoadContext - HHH000160: On CollectionLoadContext#cleanup, localLoadingCollectionKeys contained [1] entries 
WARN warn - Handler execution resulted in exception 
org.springframework.orm.hibernate3.HibernateSystemException: could not deserialize; nested exception is org.hibernate.type.SerializationException: could not deserialize 
    at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:690) ~[spring-orm-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:106) ~[spring-orm-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:403) ~[spring-orm-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:58) ~[spring-tx-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213) ~[spring-tx-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:163) ~[spring-tx-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.samples.knowledgemanager.util.CallMonitoringAspect.invoke(CallMonitoringAspect.java:80) ~[CallMonitoringAspect.class:na] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_29] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_29] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_29] 
    at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_29] 
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at $Proxy39.findByLastName(Unknown Source) ~[na:na] 
    at org.springframework.samples.knowledgemanager.service.ClinicServiceImpl.findPatientByLastName(ClinicServiceImpl.java:104) ~[ClinicServiceImpl.class:na] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_29] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_29] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_29] 
    at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_29] 
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96) ~[spring-tx-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260) ~[spring-tx-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) ~[spring-tx-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at $Proxy49.findPatientByLastName(Unknown Source) ~[na:na] 
    at org.springframework.samples.knowledgemanager.web.PatientController.processFindForm(PatientController.java:78) ~[PatientController.class:na] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_29] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_29] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_29] 
    at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_29] 
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) ~[spring-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) ~[spring-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) ~[spring-webmvc-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745) ~[spring-webmvc-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686) ~[spring-webmvc-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) ~[spring-webmvc-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) [spring-webmvc-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) [spring-webmvc-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) [spring-webmvc-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827) [spring-webmvc-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) [servlet-api.jar:na] 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) [spring-webmvc-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) [servlet-api.jar:na] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) [catalina.jar:7.0.42] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.42] 
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) [spring-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.42] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.42] 
    at com.github.dandelion.datatables.core.web.filter.DatatablesFilter.doFilter(DatatablesFilter.java:73) [datatables-core-0.9.2.jar:na] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.42] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.42] 
    at com.github.dandelion.datatables.extras.servlet2.filter.DatatablesFilter.doFilter(DatatablesFilter.java:71) [datatables-servlet2-0.9.2.jar:na] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.42] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.42] 
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) [spring-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.42] 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.42] 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) [catalina.jar:7.0.42] 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) [catalina.jar:7.0.42] 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) [catalina.jar:7.0.42] 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) [catalina.jar:7.0.42] 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) [catalina.jar:7.0.42] 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) [catalina.jar:7.0.42] 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) [catalina.jar:7.0.42] 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) [catalina.jar:7.0.42] 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) [tomcat-coyote.jar:7.0.42] 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) [tomcat-coyote.jar:7.0.42] 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) [tomcat-coyote.jar:7.0.42] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_29] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_29] 
    at java.lang.Thread.run(Thread.java:662) [na:1.6.0_29] 
Caused by: org.hibernate.type.SerializationException: could not deserialize 
    at org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:262) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.internal.util.SerializationHelper.deserialize(SerializationHelper.java:306) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.fromBytes(SerializableTypeDescriptor.java:140) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:121) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:44) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.descriptor.sql.VarbinaryTypeDescriptor$2.doExtract(VarbinaryTypeDescriptor.java:67) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:261) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:257) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:247) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:332) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2912) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1672) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1604) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.getRow(Loader.java:1504) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:712) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.processResultSet(Loader.java:942) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.doQuery(Loader.java:910) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:341) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:311) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.loadCollection(Loader.java:2234) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:65) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:674) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.event.internal.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.internal.SessionImpl.initializeCollection(SessionImpl.java:1849) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.collection.internal.AbstractPersistentCollection.forceInitialization(AbstractPersistentCollection.java:681) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.engine.internal.StatefulPersistenceContext.initializeNonLazyCollections(StatefulPersistenceContext.java:1030) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:346) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.doList(Loader.java:2522) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.doList(Loader.java:2508) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2338) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.Loader.list(Loader.java:2333) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:490) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:195) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1269) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:264) ~[hibernate-entitymanager-4.2.1.Final.jar:4.2.1.Final] 
    at org.springframework.samples.knowledgemanager.repository.jpa.JpaPatientRepositoryImpl.findByLastName(JpaPatientRepositoryImpl.java:63) ~[JpaPatientRepositoryImpl.class:na] 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_29] 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ~[na:1.6.0_29] 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) ~[na:1.6.0_29] 
    at java.lang.reflect.Method.invoke(Method.java:597) ~[na:1.6.0_29] 
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) ~[spring-aop-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155) ~[spring-tx-3.2.5.RELEASE.jar:3.2.5.RELEASE] 
    ... 77 common frames omitted 
Caused by: java.io.StreamCorruptedException: invalid stream header: 32303134 
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:782) ~[na:1.6.0_29] 
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279) ~[na:1.6.0_29] 
    at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:328) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.internal.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:318) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    at org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:237) ~[hibernate-core-4.2.1.Final.jar:4.2.1.Final] 
    ... 123 common frames omitted 
+0

有一個在類型映射錯誤,Hibernate是無法映射的一個字段,並使用,而不是實體 – jbaliuka

+0

@jbaliuka SerializableTypeDescriptor謝謝。如何利用您的觀察結果來確定我的代碼中可以更改哪些內容以消除錯誤? – CodeMed

+1

我有同樣的問題。升級到最新的hibernate ** 5.0.2.Final **解決了** java.io.StreamCorruptedException:無效的流頭文件**問題在我的案例 – Danail

回答

4

org.joda.time.LocalDate類型的屬性日期可能是罪魁禍首。 Jadira usertype library可以處理這些類型。

庫添加到類路徑,並與註釋LocalDate領域:

@Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalDate")

+0

+1並且感謝您的正確答案。 – CodeMed

+0

不客氣。這個錯誤是我在Hibernate中遇到的最模糊的錯誤之一。這可能非常令人沮喪。請記住,對Hibernate持久化未知類型可能會導致此問題。 – Bart

相關問題