Merge com Hibernate nao esta dando insert no bd

Bom dia a todos.

Estou tentando da um insert no MySQL, não gera nenhum erro o hibernate gera o insert no console mas quando vou no banco os dados nao estao la =[

metodo do insert

public <T> T atualiza(T entity, boolean executarFlush) { getEntityManager().getTransaction().begin(); getEntityManager().merge(entity); getEntityManager().getTransaction().commit(); return entity; }

CONSOLE:

16/05/2012 11:39:29 org.hibernate.annotations.common.Version <clinit> INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final} 16/05/2012 11:39:29 org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {4.0.1.Final} 16/05/2012 11:39:29 org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found 16/05/2012 11:39:29 org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist 16/05/2012 11:39:29 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!) 16/05/2012 11:39:29 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000115: Hibernate connection pool size: 20 16/05/2012 11:39:29 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000006: Autocommit mode: true 16/05/2012 11:39:29 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/MySQL] 16/05/2012 11:39:29 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000046: Connection properties: {user=root, password=****, autocommit=true, release_mode=auto} 16/05/2012 11:39:29 org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect 16/05/2012 11:39:29 org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService INFO: HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory 16/05/2012 11:39:29 org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init> INFO: HHH000397: Using ASTQueryTranslatorFactory 16/05/2012 11:39:30 org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000228: Running hbm2ddl schema update 16/05/2012 11:39:30 org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000102: Fetching database metadata 16/05/2012 11:39:30 org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000396: Updating schema 16/05/2012 11:39:30 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000261: Table found: MySQL.corretor 16/05/2012 11:39:30 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000037: Columns: [id_corretor, nome_corretor] 16/05/2012 11:39:30 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000108: Foreign keys: [] 16/05/2012 11:39:30 org.hibernate.tool.hbm2ddl.TableMetadata <init> INFO: HHH000126: Indexes: [primary] 16/05/2012 11:39:30 org.hibernate.tool.hbm2ddl.SchemaUpdate execute INFO: HHH000232: Schema update complete Hibernate: insert into CORRETOR (NOME_CORRETOR) values (?)

E no bd nada =[

Tenta fazer ae getEntityManager().flush();

Após o commit.

apos o commit da exception, agora eu usei o flush depois do merge mas ficou do mesmo jeito

[quote=evertonsilvagomesjava]apos o commit da exception, agora eu usei o flush depois do merge mas ficou do mesmo jeito[/quote]Se após o commit dá exception então não vai rolar o insert mesmo. :stuck_out_tongue:

Qual o erro?

Commit != persistir dados no banco de dados.

Commit significa que você marcou os objetos para serem persistidos, mas eles só serão ao final da transação ou após um flush().

Hum entendi o commit, mas a exception e essa que ocorre quando uso o flush depois do commit.

javax.persistence.TransactionRequiredException: no transaction is in progress at org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:970) at br.com.daos.GenericDaoBeanAgenciaTurismo.atualiza(GenericDaoBeanAgenciaTurismo.java:249) at br.com.daos.GenericDaoBeanAgenciaTurismo.atualiza(GenericDaoBeanAgenciaTurismo.java:242) at br.com.fachada.services.CorretorService.insereCorretor(CorretorService.java:10) at br.com.controller.Controller.insereCorretor(Controller.java:17) at br.com.view.CadastroCorretor$1.actionPerformed(CadastroCorretor.java:204) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.Dialog$1.run(Unknown Source) at java.awt.Dialog$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Unknown Source) at java.awt.Component.show(Unknown Source) at java.awt.Component.setVisible(Unknown Source) at java.awt.Window.setVisible(Unknown Source) at java.awt.Dialog.setVisible(Unknown Source) at br.com.view.Gui$2.actionPerformed(Gui.java:77) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.AbstractButton.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)

Fala q nao tem transação em progresso, sabe como resolver?

Parceiro, posta pra gente o XML que você criou para mapear o BD.

persistence.xml

[code]<?xml version="1.0" encoding="UTF-8"?>


org.hibernate.ejb.HibernatePersistence








[/code]

[quote=evertonsilvagomesjava]persistence.xml

[code]<?xml version="1.0" encoding="UTF-8"?>


org.hibernate.ejb.HibernatePersistence








[/code][/quote]

Insere essa linha no teu XML

<property name="hibernate.hbm2ddl.auto" value="update"/>

ela ja tava, eu tirei e continuou mesma coisa =[

Então o problema deve ser outro, mas sem essa linha de código você não vai conseguir inserir no banco.

Tenso velho, nao sei mais o que fazer =[

[quote=TiagoCedrim]Insere essa linha no teu XML

<property name="hibernate.hbm2ddl.auto" value="update"/> [/quote]Na boa, essa linha vai ajudar em nada… O.o

Olha oq o erro está falando… Onde/Como você está iniciando a transação?

Eu recupero meu entityManager aqui:

public static GenericDaoBeanAgenciaTurismo getInstance(){ if(dao == null){ return dao = new GenericDaoBeanAgenciaTurismo(HibernateUtils.getEntityManager()); }else{ return dao; } }

public static EntityManager getEntityManager(){ if(em == null){ EntityManagerFactory emf = Persistence.createEntityManagerFactory("AgenciaTurismoEntityManager"); em = emf.createEntityManager(); } return em; }

Velho no Oracle funciona :shock:

E como está seu código agora?

ta do mesmo jeito so mudei o persistence.xml pra funcionar no oracle.

a parte de inserção ta assim

getEntityManager().getTransaction().begin(); getEntityManager().merge(entity); getEntityManager().getTransaction().commit();

E se tu colocar o flush no final, para o oracle, dá aquele erro?