Pessoal, tenho o seguinte problema.
Instalei um sistema em um cliente cuja a tela possui um campo de string com um tamanho de 10 character.
No banco (Postgres) também está criado na tabela este campo para armazenar os dados . O campo é do tipo character varying tamanho 10.
Uso o hibernate para realizar a parte da persistencia do meu sistema. Até aí tudo OK.
O problema é que o cliente me telefonou e disse que prescisa de um tamanho maior para aquele campo. Que caiba mais ou menos uns 50 carateres .
Então experimentei mudar no arquivo de configuração do hibernate a propriedade length do campo para 50, só que não atualiza no banco de dados.
Será que existe alguma configuração que não postei no arquivo do hibernate para atualizar?
Será que vou ter que mudar o tamanho manualmente no banco de dados?
tenta isso, no hibernate.cfg.xml coloca a seguinte propriedade:
<propertyname="hbm2ddl.auto">update</property>
se olhar na documentação do hibernate essa propriedade deve atualizar o banco de acordo com o schema que vc passar pro hibernate, mas é bom fazer uns testes antes de botar em produção, espero que isso te ajude.
L
leopoldof
Coloquei isso e não funcionou, funciona se eu adicionar ou remover um campo da base, mas somente modificar o tamanho do campo não funciona…
Estava pensando em usar um sql puro tipo
mas como fasso isso no hibernate, Tenho que criar um hql? como ficaria o codigo java?
M
marcelo.bellissimo
Mas o cliente vai ficar alterando o tamanho do campo constantemente? Pois eu acho que esse tipo de alteração estrutural na tabela deva ser feita apenas em fase de desenvolvimento, e mesmo na fase de produção esse tipo de alteração deve ser realizada diretamente no banco, e não deixar nas mãos da aplicação, sei lá, não acho confiável… ok, muito bonito o Hibernate fazer isso ao alterar o hbm, mas realmente, nada confiável… :roll:
Acho muito trabalho pra pouca coisa… rode um script de “ALTER TABLE” na base e atualize seu hbm com o valor correto de caracteres… pronto, não precisamos de mágicas do Hibernate que alteram a estrutura da base de dados apenas pra poupar uma linha de SQL… :lol:
L
leopoldof
Na verdade eu havia gerado um campo com o tamanho 10…depois de instalado no cliente…ele notou que prescisava por mais caracteres
Ex: Um campo de nota fiscal…um tamanho de 10 creio eu que seria suficiente…mas o cliente me disse que estava querendo fazer uma venda que englobasse 3 notas fiscais… aí no campo de número de nota ele iria postar 1234/5678/13456…3 notas em um registro
Mas Obrigado…Resolvido o problema…Gerei um script com um alter table que somente e executado na primeira vez que a aplicação…
M
marcelo.bellissimo
Nesse caso, o ideal mesmo seria uma remodelagem do banco e a criação de uma tabela associativa Venda x NF…