Hibernate - Conversão de mapeamento char(banco) para String(objeto)

5 respostas
renatta

Estou com problema na leitura de um campo em uma tabela definido no banco Oracle como char(3).
Eu fiz uma query nativa sql, que o JPA Hibernate interpreta o campo char(3), como Character, e retorna apenas um caracter ao inves de 3.

Como faço para mapear um valor char do banco e te-lo como um String no Java?

obrigada pela atenção.

5 Respostas

ze_kiefa

Defina o campo no bean como String.

Exemplo

@Entity
public class Departamento{
 @Id
 private int id;
 // esse campo no banco é char(3) 
 private String sigla;

 // getters e setters omitidos
}
renatta

Obrigada por ter respondido,
mas eu ja estava declarando como String, mesmo assim o hibernate interpretava como char.

eu consegui resolver esse problema usando cast na query sql:

SELECT CAST( T.NOME AS VARCHAR2(3)) NOME FROM TABELA T

Valeu!

ze_kiefa

Muito chato isso, tira toda a nossa autonomia do projeto!

Mudando um pouco de assunto: você já mexeu com TopLink? É um framework ORM da Oracle, o qual implementa JPA também (concorrente do Hibernate?).

Dê uma olhada aqui.

Abraços.

_fs

Estranho.

Talvez este link te dê uma luz:
http://www.hibernate.org/90.html

fmeyer

LIPE:
Estranho.

Talvez este link te dê uma luz:
http://www.hibernate.org/90.html

Esse hackzinho eh necessario pq a oracle nao usa o padrao para MetaData.

ps; TopLink Fede :twisted:

Criado 24 de setembro de 2007
Ultima resposta 20 de nov. de 2007
Respostas 5
Participantes 4