Recebendo WrongClassException
Ola eu tenho um sistema de vendas e tenho nele tenho o objeto pessoa que é uma classe abstrata que ela é extendida para a classe pessoaJuridica ,Cliente Fornecedor e Transportadora extendem de pessoa Juridica. E tenho os objetos Venda e produto. E estou tendo o seguinte problema:
Quando eu insiro um produto cujo o fornecedor o id 00025 e ao informar a transportadora tambem é id 00025 eu recebo a seguinte execption ao listar os produtos da venda
org.hibernate.WrongClassException: Object with id: 00025 was not of the specified subclass: br.com.venda.model.Fornecedor (loaded object was of wrong class class br.com.venda.model.Transportadora). Isso acontece sempre que eu tiver um produto cujo o id do fornecedor for igual ao id do transportadora.
Minhas classes estao assim:
e o erro da toda vez nessa parte
Os ids nao sao gerenciados por esse sistema, sao todos importados de outro sistema por isso que nao sao autoincremento
Jah googlei mas ate o momento nenhuma solucao.. alguem teria uma luz ou um caminho que deva seguir ?
Obrigado
Quando eu insiro um produto cujo o fornecedor o id 00025 e ao informar a transportadora tambem é id 00025 eu recebo a seguinte execption ao listar os produtos da venda
org.hibernate.WrongClassException: Object with id: 00025 was not of the specified subclass: br.com.venda.model.Fornecedor (loaded object was of wrong class class br.com.venda.model.Transportadora). Isso acontece sempre que eu tiver um produto cujo o id do fornecedor for igual ao id do transportadora.
Minhas classes estao assim:
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class Pessoa implements Serializable {
private static final long serialVersionUID = -1557210475650925346L;
@Id
private String id;
private String telefone;
@Embedded
private Endereco endereco;
....
}
public abstract class PessoaJuridica extends Pessoa implements Serializable{
private static final long serialVersionUID = 8310263311317790248L;
private String cnpj;
private String razao_social;
private String fantasia;
private String ie;
@Column(nullable = true)
@Temporal(javax.persistence.TemporalType.DATE)
private Date dataAberturaEmpresa;
....
}
@Entity
public class Fornecedor extends PessoaJuridica implements Serializable{
private static final long serialVersionUID = 2323460858234027882L;
@OneToMany(mappedBy = "fornecedor")
private List<Produto> listaDeProdutos;
....
}
@Entity
public class Transportadora extends PessoaJuridica implements Serializable {
private static final long serialVersionUID = 2756722733870907218L;
@Type(type = "br.com.venda.enumeradores.Types.StatusTipoFreteType")
private TipoFrete tipoFrete;
private String valorFrete;
@Type(type = "br.com.venda.enumeradores.Types.StatusModalType")
private TipoModalidadeFrete modalFrete;
....
}
e o erro da toda vez nessa parte
public List<VendaProduto> BuscarProdutodaVenda(Venda venda) {
Criteria criteria = getSession().createCriteria(VendaProduto.class);
criteria.add(Restrictions.eq("venda", venda));
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
List<VendaProduto> cid = null;
try {
cid = criteria.list(); <= retorna null
} catch (HibernateException ex) {
ex.printStackTrace();
Mensagens.MsgOps(ex.getMessage());
} finally {
closeSession(getSession());
}
return cid;
}
Os ids nao sao gerenciados por esse sistema, sao todos importados de outro sistema por isso que nao sao autoincremento
Jah googlei mas ate o momento nenhuma solucao.. alguem teria uma luz ou um caminho que deva seguir ?
Obrigado
Alberto Leal
Curtidas 0