1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

não consigo dar commit no banco HSQLDB

Versão HSQLDB 2.3.2

Estou usando HSQLDB e não sei se é possível dar commit em um insert;

ConfIG básico:

jdbc:hsqldb:file:./db/db;shutdown=true;hsqldb.write_delay=false;hsqldb.log_data=false;hsqldb.lock_file=false;

Numa app Java Swing enqunato você salva os dados Por exemplo insert's no banco de dados HSQLDB

eles ficam em cache... e não fisicamente.

O código fica assim JPA:

EntityManager entityManager =  emf.createEntityManager();
entityManager.getTransaction().begin();
for(int i=0; i < 1000;i++){
    entityManager.persist(new Pessoa(nome));
}
entityManager.getTransaction().commit();
entityManager.close();

Em mysql por exemplo no entityManager.close(); já é efetuado o insert no banco.

Já no HSLQDB nada acontece. (mantem em memória )

Porém se eu fechar o Connection jdbc inteiro ... (shutdown) daí sim é efetivado.

Agora eu pergunto, alguem tem uma alternativa ?

eu li pouco sobre savePoint mas não entendi muito bem, não sei se ajudaria neste caso.

Além do que enqunato uma Thread estiver no loop (comando for acima) ele trava as outras threads que precisam acessar o banco HSQLDB

estou chegando a conclusão que terei que utilizar o MYSQL !!!

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags mysql java banco-de-dados jpa hibernate locking entity-framework ou faça a sua própria pergunta.