Excessão no hibernate

Ae galera,

estou executando o método findByPrimaryKey (Class classe, Serializable primaryKey), passando como argumento um objeto cujo identificador é uma String.
Já verifiquei o Hibernate.cfg.xml, o arquivo xml relativo ao objeto e aparentemente não há nada de errado.
o banco é Oracle. A excessão q ocorre no momento da consulta é a seguinte:

java.lang.ClassCastException
net.sf.hibernate.type.StringType.toString(StringType.java:47)
net.sf.hibernate.type.NullableType.nullSafeSet(NullableType.java:46)
net.sf.hibernate.type.NullableType.nullSafeSet(NullableType.java:35)
net.sf.hibernate.loader.Loader.bindPositionalParameters(Loader.java:674)
net.sf.hibernate.loader.Loader.prepareQueryStatement(Loader.java:713)
net.sf.hibernate.loader.Loader.doQuery(Loader.java:185)
net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
net.sf.hibernate.loader.Loader.loadEntity(Loader.java:836)
net.sf.hibernate.loader.Loader.loadEntity(Loader.java:856)
net.sf.hibernate.loader.EntityLoader.load(EntityLoader.java:59)
net.sf.hibernate.loader.EntityLoader.load(EntityLoader.java:51)
net.sf.hibernate.persister.EntityPersister.load(EntityPersister.java:419)
net.sf.hibernate.impl.SessionImpl.doLoad(SessionImpl.java:2106)
net.sf.hibernate.impl.SessionImpl.doLoadByClass(SessionImpl.java:1980)
net.sf.hibernate.impl.SessionImpl.get(SessionImpl.java:1916)
br.org.df.codeplan.sigterra.dao.BaseDAO.findByPrimaryKey(BaseDAO.java:129)
br.org.df.codeplan.sigterra.dao.ContabilDAO.findConta(ContabilDAO.java:52)
br.org.df.codeplan.sigterra.facade.ContabilFacade.findConta(ContabilFacade.java:65)
br.org.df.codeplan.sigterra.struts.contabil.realizaLancamentoManual.RealizaLancamentoManualAction.chamaPaginaInformarValor(RealizaLancamentoManualAction.java:50)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:280)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:216)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

Se alguem já se deparou com isso e puder puder ajudar, seria bastante grato. Qual as possiveis causas desta exceção?

Desde já agradeço, Guilherme

Cara,
parece que sua string ta chegando com valor nulo nesse metodo e ele nao ta conseguindo converter! Nos meus projetos as chaves sempre são definidas como long. Faz assim olha no seu arquivo de hbm qual o tipo do ID que vc definiu e coloque um breakpoint no ponto que vc chama o metodo find e ve qual valor ta chegando, se ta nulo e depois tenta passar um long!

cara, obrigado, mas não tá chegando nulo. o obejto tá chegando preenchido. o tipo de dado desse atributo deve ser String pq na tabela do Oracle ele é uma String. acho q o hibernate não tá aceitando essa String como identificador!

problema resolvido!

e qual foi a solução? =)

Deveria passar somente a String que é chave , q implementa Serializable, como argumento para o findByPrimaryKey e nao o objeto inteiro como estava fazendo…