Galera… bom dia
Estou trabalhando com uma aplicação desktop e pretendo persistir informações (local) utilizando o Derby DB
Estou utilizando JPA e Hibernate como frameworks para ORM. É a primeira vez que faço uso de Hibernate e estou com dificuldades em entender o erro que estou enfrentando… Alguém consegue me dar uma mão
Sempre que tento fazer qualquer operação de CRUD a resposta é A tabela/visão ‘CLIENTE’ não existe
Desde já, obrigado
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
org.hibernate.ejb.HibernatePersistence
<!-- atualiza o banco, gera as tabelas se for preciso --> <property name="javax.persistence.jdbc.url" value="jdbc:derby:myDB;create=true" /> <property name="javax.persistence.jdbc.user" value="APP" /> <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver" /> <property name="javax.persistence.jdbc.password" value="APP" /> <property name="javax.persistence.schema-generation.database.action" value="create" /> </properties>
minha classe (unica classe)
@Entity @Table(name = “CLIENTE”) public class Cliente implements Serializable { private static final long serialVersionUID = 1L;@Id @Column(name = “id”) private int id; @Column private String nome; @Column private String cpf; @Column private String rg; }
método de persistência
public void persist(Cliente cliente) { try { if (entityManager.isOpen()) { entityManager.getTransaction().begin(); entityManager.persist(cliente); entityManager.getTransaction().commit(); } } catch (Exception ex) { ex.printStackTrace(); entityManager.getTransaction().rollback(); } }
Log gerado
ago 17, 2016 12:08:34 PM org.hibernate.annotations.common.Version INFO: HCANN000001: Hibernate Commons Annotations {4.0.2.Final} ago 17, 2016 12:08:34 PM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {4.2.19.Final} ago 17, 2016 12:08:34 PM org.hibernate.cfg.Environment INFO: HHH000206: hibernate.properties not found ago 17, 2016 12:08:34 PM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist ago 17, 2016 12:08:34 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!) ago 17, 2016 12:08:35 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000115: Hibernate connection pool size: 20 ago 17, 2016 12:08:35 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000006: Autocommit mode: true ago 17, 2016 12:08:35 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000401: using driver [org.apache.derby.jdbc.EmbeddedDriver] at URL [jdbc:derby:myDB;create=true] ago 17, 2016 12:08:35 PM org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure INFO: HHH000046: Connection properties: {user=APP, password=****, autocommit=true, release_mode=auto} ago 17, 2016 12:08:35 PM org.hibernate.dialect.Dialect INFO: HHH000400: Using dialect: org.hibernate.dialect.DerbyTenSevenDialect ago 17, 2016 12:08:35 PM org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService INFO: HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory ago 17, 2016 12:08:35 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory INFO: HHH000397: Using ASTQueryTranslatorFactory Hibernate: insert into CLIENTE (cpf, nome, rg, id) values (?, ?, ?, ?) ago 17, 2016 12:08:35 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions WARN: SQL Error: 20000, SQLState: 42X05 ago 17, 2016 12:08:35 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions ERROR: A tabela/visão ‘CLIENTE’ não existe. javax.persistence.RollbackException: Error while committing the transaction at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:92) at ClienteJpaDAO.persist(ClienteJpaDAO.java:48) at MainApplication.addClient1(MainApplication.java:17) at MainApplication.main(MainApplication.java:7) Caused by: javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not prepare statement at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1387) at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1310) at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:80) … 3 more Caused by: org.hibernate.exception.SQLGrammarException: could not prepare statement at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:82) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:124) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:193) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareStatement(StatementPreparerImpl.java:89) at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.buildBatchStatement(AbstractBatchImpl.java:150) at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.getBatchStatement(AbstractBatchImpl.java:139) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3057) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3521) at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:88) at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:395) at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:387) at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:303) at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:349) at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:56) at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1195) at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:404) at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101) at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175) at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:75) … 3 more Caused by: java.sql.SQLSyntaxErrorException: A tabela/visão ‘CLIENTE’ não existe. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) at org.apache.derby.impl.jdbc.EmbedPreparedStatement.(Unknown Source) at org.apache.derby.impl.jdbc.EmbedPreparedStatement42.(Unknown Source) at org.apache.derby.jdbc.Driver42.newEmbedPreparedStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$1.doPrepare(StatementPreparerImpl.java:96) at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:183) … 19 more Caused by: ERROR 42X05: A tabela/visão ‘CLIENTE’ não existe. at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) at org.apache.derby.impl.sql.compile.DMLModStatementNode.verifyTargetTable(Unknown Source) at org.apache.derby.impl.sql.compile.InsertNode.bindStatement(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepMinion(Unknown Source) at org.apache.derby.impl.sql.GenericStatement.prepare(Unknown Source) at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(Unknown Source) … 26 more Exception in thread “main” java.lang.IllegalStateException: Transaction not active at org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:103) at ClienteJpaDAO.persist(ClienteJpaDAO.java:52) at MainApplication.addClient1(MainApplication.java:17) at MainApplication.main(MainApplication.java:7)
META-INF
