Tenho uma classe chamada Endereco e anotada com @Embeddable, faço referência à Endereco na classe Cliente da seguinte forma:
@Embedded
private Endereco endereco = new Endereco();
Até aí tudo bem, o problema é que em Endereco eu tenho o seguinte:
private Cidade cidade = new Cidade();
private Estado estado = new Estado();
E quando eu salvo um cliente, os campos cidade e estado (que são combos) estão sendo salvos com um tipo de dado chamado Blob sendo que na página xhtml eu peço para ser salvo o código da cidade e estado.
Nas tabelas estado e cidade eu tenho int e varchar, mas na tabela cliente no campo estado e cidade aparece como tinyblob…
Rodrigo_Sasaki
Eu acho que seu problema está aí, a sua aplicação está persistindo o dado de acordo com a estrutura da tabela, se quer que a FK seja mapeada pela PK da outra tabela, você vai ter que mexer na estrutura.
tveronezi
E quando eu salvo um cliente, os campos cidade e estado (que são combos) estão sendo salvos com um tipo de dado chamado Blob sendo que na página xhtml eu peço para ser salvo o código da cidade e estado.
Isto é esperado quando a gente usa “@Embedded”.
Quando o container vê um campo anotado com isso, ele vai fazer a serialização do objeto (no caso, endereco) pra poder salvá-lo num campo binário (o campo blob).
K
karinacomk.lima
Faltou mesmo parte do mapeamento na classe Endereco…era isso…