[PostgreSQL + Hibernate] Tipo nativo XML - como mapear?

4 respostas
paulo_r1

Olá, pessoal. Estou com um problema que de aparentemente simples se tornou um verdadeiro saco.
Estou desenvolvendo uma aplicação que usa o PostgreSQL como banco de dados (versão 8.3), e em uma tabela desse banco existe uma coluna do tipo XML (nativo nessa versão do BD). O problema é que eu não encontrei forma de mapeamento para esse tipo no Hibernate (versão 3.0). Tentei fazer o mapeamento diretamente com a classe java.sql.SQLXML (do Java 6), mas o Hibernate acusa que não consegue mapear. Pensei que o driver do JDBC4 para o PostgreSQL desse suporte, mas aparentemente não dá. Pesquisei no Google e também não encontrei nada de muito útil. Ah, já fui no fórum do site do Hibernate também e não vi nada a respeito.
Alguém tem experiência com isso? Implementar um UserType do Hibernate resolveria esse problema? Ou é melhor abandoná-lo e partir pro JDBC puro?

Desde já agradeço,

Paulo R.

4 Respostas

paulo_r1

ninguém? :frowning:

cassio

Qual o problema de tratar esse campo mapeando para text mesmo? Ele vai manter todo o conteúdo do seu XML de qualquer forma.

paulo_r1

Esse atributo tem que ser xml para que certos recursos de consulta do banco específicos para esse tipo sejam aproveitados (como o uso de xpath, por exemplo).
Eu já desisti, tentei até implementar um UserType, mas o dialeto do Hibernate para o PostgreSQL não consegue mapear o tipo SQLXML (padrão SQL:2003). O buraco é mais embaixo, isso é uma limitação do Hibernate, simplesmente não dá pra fazer =/
O jeito é partir pro JDBC puro mesmo.

doug

Olá…
Então se vc mapear seu campo na tabela como blob e gravar um array de byte do tipo XML
pode ser que funcione para vc… isso é uma idéia!!!

flwssss

Criado 17 de julho de 2008
Ultima resposta 19 de jul. de 2008
Respostas 4
Participantes 3