Hibernate e import.sql (codificação)  XML
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Autor Mensagem
olivera82
What is classpath?

Membro desde: 09/07/2009 13:47:30
Mensagens: 5
Offline

Pessoal, tenho uma aplicação que utiliza maven, jsf e hibernate.
Estou usando o hibernate.hbm2ddl, na criação do banco, tenho alguns inserts que devem ser feitos por padrão. Estes inserts estao em um arquivo sql denominado import.sql. O hibernate utiliza este arquivo para ler as sqls de inserção.

O banco de dados é oracle 10g XE.

Problema: A codificação do sistema java em geral está como UTF-8. A codificação do banco no servidor está como

Quano o hibernate le o arquivo e insere no banco, estou tendo problemas com acentuação e caracteres como Ç.

Alguem sabe como resolver isso, configurando o hibernate ou o arquivo de sql? (algum cabeçalho no arquivo, sei lá.)

Já tentei criar o arquivo como ANSI, porem quando eu altero pelo netbeans, ele retorna aos problemas.

Não posso alterar o charset do banco, e talvez mudar a codificação do codigo no netbeans nao ajude e sim cause mais problemas.

Obrigado.
partenon
JavaChild
[Avatar]
Membro desde: 27/06/2010 15:08:10
Mensagens: 103
Localização: Brno, Czech Republic
Offline

Voce deve deixar todos falando a mesma lingua. Portanto, se a unica coisa que nao pode mudar eh seu banco de dados, entao use ele como o padrao. Imagino que voce esta usando ISO-8859-1, entao, voce pode formatar seu arquivo nesta codificacao (editores de texto "decentes" geralmente tem a opcao "encoding" na hora de "salvar como"). Infelizmente, nao existe uma forma de falar para o Hibernate qual encoding usar[1], entao, voce tem que fazer isso como parametro da JVM, como o "file.encoding". Por exemplo: java -Dfile.encoding=ENCODING_ESPERADO SeuPrograma . Se esta usando um Application Server, voce deve configura-lo para iniciar com este parametro (por exemplo, no run.conf do JBoss AS).

[1] O Hibernate usa "new InputStreamReader( stream );" diretamente, sem especificar o encoding. Voce pode fazer um patch e mandar para o Hibernate (pontos extras se vc adicionar um test case tambem). Existe este item em aberto, caso se interesse em enviar um patch: http://opensource.atlassian.com/projects/hibernate/browse/HBX-711

http://www.google.com/profiles/partenon
[WWW]
 
Índice dos Fóruns » Persistência: Hibernate, JPA, JDBC e outros
Ir para:   
Powered by JForum 2.1.8 © JForum Team