Chave primaria com relacionamento ManyToOne

Olá.

Tenho o seguinte problema…

Tenho duas tabelas

Fornecedor com uma chave primaria unica


@Entity
@Table( name = "ICFORNECED", schema = "SESC" )
public class ICForneced implements Serializable {
	
	private static final long serialVersionUID = -6669959701623327348L;
	
	@Id
	private Integer codfor;

        ... demais atributos
}

outra classe Bancos também com uma chave unica

@Entity
@Table( name = "ICBANCO", schema = "SESC" )
public class ICBanco implements Serializable {
	
	private static final long serialVersionUID = 1095406357912480466L;

	@Id
	private String codbanc;
   
        ... demais atributos
}

e outra classe para amarrar as contas bancárias deste fornecedor,
esta tem uma chave composta pelo
código do fornecedor
código do banco e
número da conta.

e para mapear esta chave uso uma classe para a pk com @Embeddable

FBNFornecedor

@Entity
@Table( name = "ICFBNFORNECED", schema = "SESC" )
public class ICFBNForneced implements Serializable {

	private static final long serialVersionUID = -3764311902338000601L;

	@EmbeddedId	
	private IDICFBNForneced key;
	
	private String agconta;
   ...
}

classe pk

@Embeddable
public class IDICFBNForneced implements Serializable {

	private static final long serialVersionUID = 8604389835345528353L;

	@Column(name="codfor")
	private ICForneced fornecedor;
	
	@Column(name="codbanc")
	private ICBanco banco;
	
	private String numconta;
   ...
}

a query de consulta é construida corretamente,
o meu problema é que gera este erro

javax.persistence.PersistenceException: org.hibernate.type.SerializationException: could not deserialize at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:74) at br.com.sescpr.mcb.conn.GenericDAO.getResultList(GenericDAO.java:118) at br.com.sescpr.mcb.dao.ICFBNFornecedDAO.getResultList(ICFBNFornecedDAO.java:77) at br.com.sescpr.mcb.forms.FormFornecedorFBN.getFornecedores(FormFornecedorFBN.java:173) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.sun.faces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:79) at com.sun.faces.el.impl.ArraySuffix.evaluate(ArraySuffix.java:167) at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:151) at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:243) at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:173) at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:154) at javax.faces.component.UIData.getValue(UIData.java:527) at javax.faces.component.UIData.getDataModel(UIData.java:856) at javax.faces.component.UIData.setRowIndex(UIData.java:379) at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:65) at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:683) at javax.faces.component.UIData.encodeBegin(UIData.java:681) at javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:591) at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:543) at com.sun.faces.taglib.html_basic.DataTableTag.doEndTag(DataTableTag.java:491) at org.apache.jsp.pages.fbn_005fforneced_jsp._jspx_meth_h_dataTable_0(org.apache.jsp.pages.fbn_005fforneced_jsp:1484) at org.apache.jsp.pages.fbn_005fforneced_jsp._jspx_meth_h_form_1(org.apache.jsp.pages.fbn_005fforneced_jsp:556) at org.apache.jsp.pages.fbn_005fforneced_jsp._jspx_meth_f_view_0(org.apache.jsp.pages.fbn_005fforneced_jsp:198) at org.apache.jsp.pages.fbn_005fforneced_jsp._jspService(org.apache.jsp.pages.fbn_005fforneced_jsp:144) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322) at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at br.com.sescpr.mcb.filters.FilterLogin.doFilter(FilterLogin.java:86) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Unknown Source) Caused by: org.hibernate.type.SerializationException: could not deserialize at org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:217) at org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:240) at org.hibernate.type.SerializableType.fromBytes(SerializableType.java:82) at org.hibernate.type.SerializableType.get(SerializableType.java:39) at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163) at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154) at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81) at org.hibernate.type.ComponentType.hydrate(ComponentType.java:560) at org.hibernate.type.ComponentType.nullSafeGet(ComponentType.java:275) at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:1097) at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:565) at org.hibernate.loader.Loader.doQuery(Loader.java:701) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) at org.hibernate.loader.Loader.doList(Loader.java:2213) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104) at org.hibernate.loader.Loader.list(Loader.java:2099) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338) at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:65) ... 61 more Caused by: java.io.EOFException at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source) at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source) at java.io.ObjectInputStream.readStreamHeader(Unknown Source) at java.io.ObjectInputStream.<init>(Unknown Source) at org.hibernate.util.SerializationHelper$CustomObjectInputStream.<init>(SerializationHelper.java:252) at org.hibernate.util.SerializationHelper.deserialize(SerializationHelper.java:209) ... 82 more

acredito que a questão esteja em como serializar os atributos do objeto de pk…
desde já agradeço pela ajuda.

Você tem certeza que todas as classes envolvidas implementam Serializable?