Hibernate não grava dados na tabela do Hsqldb

9 respostas
Rodrigo_Ribaldo

Olá pessoal…

Estou tentando fazer um exemplo com o hibernate + Hsqldb, porém, aparentemente tudo funciona, o hibernate conecta faz a gravação, não dá erros, mas a tabela continua sem o registro…

Se eu faço a inserção via comandos sql através do dbanalyzer funciona, consigo gravar os registros…

Alguém tem alguma idéia?

Obrigado

9 Respostas

Jair_Rillo_Junior

Mostra seu código, mas eu desconfio que isso seja problema de transação.
Você está usando JTA ou controle de transação na mão? Se for na mão, você fez o commit no final?

dyorgio

Sempre que vejo alguem usando HSQLDB eu fico me perguntando…porque?!

Cara, não vou responder a pergunta do topico…mais dou a dica, que serve pra todos que usam o HSQLDB:

Usem o H2… www.h2database.com, pelamordeDeus.

é o mesmo criador do HSQLDB, o que muda é que ele melhorou e muito a performance ( procurem pelo meu post sobre problemas de performance com o HSQLDB).

tinha um insert la de 500.000 registros que levava 2 horas com o HSQLDB, pevou 3 minutos com o H2…

fora as ferramentas de gerenciamento e constante atualização…

e funciona exatamente igual, soh precisa mudar o JAR e o nome do drive. :slight_smile:

Rodrigo_Ribaldo

Olá Jair Rillo Junior,

Estou sem o código aqui agora, pois esqueci meu pendrive, a tarde eu coloco aqui p ver se consegue me ajudar…

Obrigado por enquanto

Rodrigo_Ribaldo

olá dyorgio…

Obrigado pela dica!

Só uma pergunta!

Quero distribuir o banco junto com a aplicação, ou seja, ele deve rodar com standalone, não como server…É uma aplicação pequena…

Você sabe se posso distribuir ele com a aplicação sem problemas com a licença? Vou vender o software que estou fazendo em java…

Obrigado

dyorgio

Claro cara, podes usar a vontade…
o que indico sempre, é manter a EULA dele e o jar separados do jar
da sua aplicação…tipo uma pastinha lib…

ai vc não tem problemas com creditos para projetos opensource nunca.

viniciusfaleiro


Mostra seu código, mas eu desconfio que isso seja problema de transação.
Você está usando JTA ou controle de transação na mão? Se for na mão, você fez o commit no final?

Também acredito que esse seja o problema… Eu concordo também (gênero, numero e grau!!) que as transações devam ser tratadas por um controller de transações ou manualmente… Porém, para efeito de estudos, você pode utilizar o autocommit do Hibernate (Para estudos… não utilize em produção por favor!!)

Coloque isso no arquivo de config se quiser testar

true

Rodrigo_Ribaldo

dyorgio

obrigado mais uma vez!

Deixa eu aproveitar mais uma coisa…

Estou iniciando com programação em java para desktop, tenho um prazo apertado para a entrega do software…

Quando eu vi a aplicação do Hibernate fiquei muito impressionado pela maneira como faz o objeto/relacional…gostei muito, porém, ainda não tengo muita experiência com todas essas novas tecnologias e afins…Hibernate, Annotations, JTA,JPA e outras mais.

Estou até pensando em fazer meio que na mão mesmo, com objetos DAO implementando as querys com SQL, entende?

Pois acho que quando eu for tentar gravar na base um objeto composto com Hiberntae vou ter dificuladades, pois ainda não domino Annotations e mesmo o funcionamento do Hibernate…

A pergunta é:

Vc tem alguma apostila ou indicação de livro ou site onde eu possa aprender tudo isso sobre Hibernate e Annotations?

Só p ver meu grau de dificuldades eu não estava conseguindo fazer o hibernate rodar pq nem sabia qual jar eu tinha que colocar na minha lib do projeto…

Obrigado!

Jair_Rillo_Junior

Dê uma boa lida na documentação oficial do Hibernate. https://www.hibernate.org/
É uma excelente fonte de informação e os exemplos são bem simples de entender

dyorgio

Hibernate é simples mesmo…
mais perigoso…
as vezes vc desenha o banco com as classes/anotações

ai acaba ficando ruim seu banco porque tu não sabia ligar as chaves estrangeiras direito…

o projeto não tem tempo?é pra ter performance?

não use hibernate.

se vc esta familiarizado com spring use ele…ele gerencia a sua conexão e extendendo o JdbcDaoSupport
vc consegue fazer varias coisas legais, entre elas usar o RowMapper para fazer o Objeto/relacional que precisas…

construa o seu banco como vc sabe, em sql…

assim teras performance e conhecimento total do que esta ocorrendo.

Criado 1 de março de 2010
Ultima resposta 1 de mar. de 2010
Respostas 9
Participantes 4