| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2006 15:43:02
|
adriano.ferranti
JavaTeenager
![[Avatar]](/images/avatar/0b3f44d9054402de39441e165a4bdfe0.jpg)
Membro desde: 27/03/2006 10:59:38
Mensagens: 181
Offline
|
Pessoal, estou com uma dúvida quanto ao uso de transações com hibernate por exemplo:
Suponhamos que o campo Username seja a chave primária, então na 2 iteração do loop geraria um erro na chave primária. A transação não deveria ser abortada e nenhum registro seria inserido ?
Mas nos meus testes, mesmo caindo no bloco except com tx.rollback, o primeiro registro não é excluido. Alguem pode me dar uma força? valeu
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/04/2006 17:06:50
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
Seu BD suporta transações?
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2006 10:33:30
|
adriano.ferranti
JavaTeenager
![[Avatar]](/images/avatar/0b3f44d9054402de39441e165a4bdfe0.jpg)
Membro desde: 27/03/2006 10:59:38
Mensagens: 181
Offline
|
Sim, estou usando o mysql com INNODB.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2006 10:38:29
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
Faça um simples teste com JDBC para garantir que as transaçõs funcionam.
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2006 10:46:32
|
adriano.ferranti
JavaTeenager
![[Avatar]](/images/avatar/0b3f44d9054402de39441e165a4bdfe0.jpg)
Membro desde: 27/03/2006 10:59:38
Mensagens: 181
Offline
|
Obrigado por responder, Daniel. É o seguinte, o mysql por default usa o AUTOCOMMIT=true, me parece que esse é o problema, áí vem a dúvida: como faço para setar o AUTOCOMMIT=false ?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2006 10:49:28
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
Creio que o Hibernate deveria cuidar disso, não?
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2006 10:53:25
|
adriano.ferranti
JavaTeenager
![[Avatar]](/images/avatar/0b3f44d9054402de39441e165a4bdfe0.jpg)
Membro desde: 27/03/2006 10:59:38
Mensagens: 181
Offline
|
Pois é... esse é meu problema, estou iniciando agora com hibernate, ainda tenho muito o que aprender, mas vendo o log do hibernate ele
seta o modo autocommit como false, logo deveria funcionar, não?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2006 10:56:50
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
Exato!
Para dirimir suas dúvidas, faça um teste com JDBC apenas.
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2006 11:14:54
|
adriano.ferranti
JavaTeenager
![[Avatar]](/images/avatar/0b3f44d9054402de39441e165a4bdfe0.jpg)
Membro desde: 27/03/2006 10:59:38
Mensagens: 181
Offline
|
Esse código funciona corretamente, isso é, não insere nada no banco. Agora não sei como ficaria a transação com hibernate...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2006 11:24:38
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
hehehehe...
testa assim:
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2006 11:29:33
|
adriano.ferranti
JavaTeenager
![[Avatar]](/images/avatar/0b3f44d9054402de39441e165a4bdfe0.jpg)
Membro desde: 27/03/2006 10:59:38
Mensagens: 181
Offline
|
danieldestro wrote:hehehehe...
testa assim:
Foi mal... dei uma viajada, mas usando conn.setAutoCommit(false) funciona, isso é, não inclui nada... Tá meio estranho isso não?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2006 11:35:33
|
tiaguera
What is classpath?
Membro desde: 26/04/2006 11:02:48
Mensagens: 5
Offline
|
Olá adriano
para setar o autoCommit = false adicione o seguinte no seu
arquivo de configuração do Hibernate
<property name="hibernate.connection.autocommit">false</property>
Já tive um problema assim e resolveu com essa tag.
Abraço
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/04/2006 12:19:52
|
adriano.ferranti
JavaTeenager
![[Avatar]](/images/avatar/0b3f44d9054402de39441e165a4bdfe0.jpg)
Membro desde: 27/03/2006 10:59:38
Mensagens: 181
Offline
|
Puxa vida, até que enfim consegui. Estava fazendo uma burrada. No meu arquivo hibernate.properties as duas linhas a seguir estava descomentadas
hibernate.dialect org.hibernate.dialect.MySQLDialect
hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect
Então quando o hibernate criava as tabelas, estava criando no formato MyIsam (sem suporte a transação). Mas o estranho é que quando eu testei com JDBC a transação funcionou mesmo assim...
Muito obrigado a todos que me ajudaram.
|
|
|
 |
|
|