Solucionado (ver solução)
Solucionado
(ver solução)
12
respostas

org.hibernate.type.SerializationException: could not deserialize

Estou tentando execultar uma consulta com parâmetro e ocorre o erro "could not deserialize". Alguém sabe o motivo? Já tentei de tudo e o erro persiste.. A classe ContaJudicial extend de BaseEntidade que implementa o Serializable.

Segue abaixo, a consulta, mapeamento da Entidade e o Log de erro:

Tenho uma consulta conforme abaixo: `public List buscarContaJudicialPorProcesso(String numeroProcesso) {

StringBuilder consulta = new StringBuilder(); consulta.append("Select cjud "); consulta.append(criarComandoPesquisaEntidade("cjud")); consulta.append("WHERE cjud.processoTrf = :numeroProcesso");

TypedQuery query = getEntityManager().createQuery(consulta.toString(), ContaJudicial.class); query.setParameter("numeroProcesso", numeroProcesso);

return query.getResultList();

} Classe Entidade:@Entity @Table(name = "tb_conta_judicial") public class ContaJudicial extends BaseEntidade{

/* serial version UID genereted */ private static final long serialVersionUID = 444757811347691043L;

@Id @SequenceGenerator(name = "sequence_generated_conta_judicial", sequenceName = "sq_tb_conta_judicial") @GeneratedValue(generator = "sequence_generated_conta_judicial") @Column(name = "id_conta_judicial", unique = true, nullable = false) private Long id;

@Column(name = "cd_conta", length = 17) @Size(max = 17) private String numero;

@Column(name="id_processo_trf", length=20) @Size(max=20) private String processoTrf;

@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "id_banco") private Banco banco;

@Column(name = "numero_conta", length = 70) @Size(max = 70) public String getNumero() { return this.numero; }

public void setNumero(String numero) { this.numero = numero; }

@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "id_banco") public Banco getBanco() { return this.banco; }

/* @param banco the banco to set */ public void setBanco(Banco banco) { this.banco = banco; }

public String getProcessoTrf(){ return this.processoTrf; }

/* @param processoJT the processoJT to set */ public void setProcessoTrf(String processoTrf) { this.processoTrf = processoTrf; }

`

12 respostas

Boa tarde Adriana, pode postar a stack de erro ?

Sim.. Estava mto grande.. Segue o link https://gist.github.com/anonymous/625be0850f1bd06d10fe8f3ce634d124

ah sim, qual versão do hibernate está usando ?

Estou usando 5.0.11.Final-redhat-1 e jpa 2.1

Adriana, não tive esse erro mas vamos tentar algumas coisas!!

Primeiro queria que tirasse as annotations de cima do método getBanco(), se não funcionar cola pra mim a classe Banco

Não funcionou :( Classe banco no link: https://gist.github.com/aonaga/16918c6af1fdc01dbe96ef76d8ae8bb6

Esse erro pode ocorrer porque algum campo de algum modelo teu não está mapeado..

Na classe conta tem o

private List<ContaJudicial> contas;

Ele ta @transaient no get mas não sei a jpa está se perdendo com isso, ou se tem algum outro tipo seu sem mapeamento! dá uma olhada ai e me fala

Já comentei esta parte e não rolou antes de postar o erro. Também já tentei criar o Construtor sem parâmetro. Ex. public Banco() { }

Os mapeamentos estão corretos. Todas as colunas das Entidades Conta e Banco estão mapeadas.

Certo, bom, nesse caso vou pedir pra ti compartilhar o código no github pra olharmos aqui!

Tava olhando no banco de dados. A entidade ContaJudicial é chave estrangeira de outras tabelas que não fiz o mapeamento ainda no JPA. Pode ser isso o erro?

solução!

Pode ser sim, porque se você tem uma outra entidade que tem um composição com ContaJudicial, você precisa indicar isso, senão a JPA vai se perder

Deu certo.. Tive q fazer o mapeamento de todas as tabelas envolvidas. Obrigada