Erro ao persistir byte[]

3 respostas
R

Bom dia,

Colegas venho aqui pois tenho o seguinte problema:
Estou tentando persistir um campo byte[] que está null no banco. Porém está acontecendo o segunte erro:

[TopLink Warning]: 2011.01.17 11:01:21.066--UnitOfWork(12090099)--Thread(Thread[httpSSLWorkerThread-8080-2,10,Grizzly])--Local Exception Stack: Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.1 (Build b60e-fcs (12/23/2008))): oracle.toplink.essentials.exceptions.DatabaseException Internal Exception: org.postgresql.util.PSQLException: ERRO: coluna "arquivoimagem" é do tipo bytea mas expressão é do tipo oid Dica: Você precisará reescrever ou converter a expressão. Posição: 231 Error Code: 0

Não estou entendendo direito pois o mapeamento do campo acredito eu que está correto.

@Basic(fetch=FetchType.LAZY) @Lob @Column(name = "arquivodocumento", nullable = true, columnDefinition = "bytea") private byte[] arquivoDocumento;

Não tive nenhum problema até ter q mapear um outro campo em outra tabela que nao tem nenhuma relação com a tabela do campo acima. A partir dai comecei ter essa dor de cabeça descrita no erro acima.
Aqui está osegundo campo q tique q mapear

@Basic(fetch=FetchType.LAZY) @Lob @Column(name = "arquivoimagem", columnDefinition = "bytea") private byte[] arquivoImagem;
Fora o nullable, nenhuma diferença na forma de mapear.

Estou usando banco PostGre 9.0.1, não acredito q isso interfira.
Estou no aguardo para alguem me dar uma ajuda…hehehe
ate mais

3 Respostas

silasjr

Bom dia,

Eu já passei por esse erro. Pelo que parece o conector JDBC do postgresql não aceita campos do tipo bytea nulos. Tanto para persistência como pesquisa. Eu contornei essa situação colocando uma imagem padrão.
Pois eu não encontrei uma solução para esse erro :D:)

Mas caso encontre alguma.

Posta aqui pra gente.

blz

R

É estranho silasjr, pois antes de eu criar esse segundo campo, estava gravando campos bytea nulos sem nenhum problema.
Bom, nao sei se colocar uma imagem padrao seja a coisa certa a fazer, mais acho q meu chefe nao vai aceitar…dhasudhasuda
Vamos ver se alguma boa alma tenha a solução correta para o nosso problema.

viniciusffj

Olá pessoal, eu estava com esse problema e consegui resolver.
Mas eu estava usando o hibernate, não sei quanto a vocês.
Eu adicionei a seguinte anotação na hora de mapear:

Não lembro o site que eu vi isso, por isso não vou conseguir dar referência.
Meu BD tb é PostgreSQL.

Criado 17 de janeiro de 2011
Ultima resposta 30 de ago. de 2011
Respostas 3
Participantes 3