not found examples example java mysql hibernate jdbc

java - examples - hibernate.properties not found



Error de hibernación al ejecutar DDL a través de la declaración JDBC (5)

Realmente necesito ayuda. Busqué en todas las preguntas que encontré en stackoverflow y nada funciona. Nunca he usado hibernación antes y no sé qué estoy haciendo mal.
Aquí está mi repositorio: https://github.com/ionutincau/test_db

Me sale este error:

"C:/Program Files/Java/jdk1.8.0_111/bin/java" "-javaagent:E:/Applications/IntelliJ/IntelliJ IDEA Community Edition 2017.1/lib/idea_rt.jar=50372:E:/Applications/IntelliJ/IntelliJ IDEA Community Edition 2017.1/bin" -Dfile.encoding=UTF-8 -classpath "C:/Program Files/Java/jdk1.8.0_111/jre/lib/charsets.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/deploy.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/ext/access-bridge-64.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/ext/cldrdata.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/ext/dnsns.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/ext/jaccess.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/ext/jfxrt.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/ext/localedata.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/ext/nashorn.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/ext/sunec.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/ext/sunjce_provider.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/ext/sunmscapi.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/ext/sunpkcs11.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/ext/zipfs.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/javaws.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/jce.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/jfr.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/jfxswt.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/jsse.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/management-agent.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/plugin.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/resources.jar;C:/Program Files/Java/jdk1.8.0_111/jre/lib/rt.jar;C:/Users/ionut/IdeaProjects/test_db/out/production/test_db;C:/Users/ionut/IdeaProjects/test_db/lib/mysql-connector-java-5.1.41-bin.jar;C:/Users/ionut/IdeaProjects/test_db/lib/hibernate-core-5.2.9.Final.jar;C:/Users/ionut/IdeaProjects/test_db/lib/antlr-2.7.7.jar;C:/Users/ionut/IdeaProjects/test_db/lib/classmate-1.3.0.jar;C:/Users/ionut/IdeaProjects/test_db/lib/dom4j-1.6.1.jar;C:/Users/ionut/IdeaProjects/test_db/lib/hibernate-commons-annotations-5.0.1.Final.jar;C:/Users/ionut/IdeaProjects/test_db/lib/hibernate-jpa-2.1-api-1.0.0.Final.jar;C:/Users/ionut/IdeaProjects/test_db/lib/jandex-2.0.3.Final.jar;C:/Users/ionut/IdeaProjects/test_db/lib/javassist-3.20.0-GA.jar;C:/Users/ionut/IdeaProjects/test_db/lib/jboss-logging-3.3.0.Final.jar;C:/Users/ionut/IdeaProjects/test_db/lib/jboss-transaction-api_1.2_spec-1.0.1.Final.jar;C:/Users/ionut/IdeaProjects/test_db/lib/hibernate-jpamodelgen-5.2.9.Final.jar" Main Apr 03, 2017 9:05:50 PM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {5.2.9.Final} Apr 03, 2017 9:05:50 PM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Apr 03, 2017 9:05:51 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final} Apr 03, 2017 9:05:51 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) Apr 03, 2017 9:05:51 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001005: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/test] Apr 03, 2017 9:05:51 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001001: Connection properties: {user=root, password=****} Apr 03, 2017 9:05:51 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001003: Autocommit mode: false Apr 03, 2017 9:05:51 PM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init> INFO: HHH000115: Hibernate connection pool size: 1 (min=1) Apr 03, 2017 9:05:51 PM org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect Hibernate: drop table if exists User Apr 03, 2017 9:05:52 PM org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@3a12c404] for (non-JTA) DDL execution was not in auto-commit mode; the Connection ''local transaction'' will be committed and the Connection will be set into auto-commit mode. Hibernate: create table User (userId integer not null, userName varchar(255), primary key (userId)) type=MyISAM Apr 03, 2017 9:05:52 PM org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@59b38691] for (non-JTA) DDL execution was not in auto-commit mode; the Connection ''local transaction'' will be committed and the Connection will be set into auto-commit mode. Apr 03, 2017 9:05:52 PM org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL via JDBC Statement org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL via JDBC Statement at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:440) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:424) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:315) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:155) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:309) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:445) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:710) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726) at Main.main(Main.java:19) Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''type=MyISAM'' at line 1 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) at com.mysql.jdbc.Util.getInstance(Util.java:408) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:943) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2497) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2455) at com.mysql.jdbc.StatementImpl.executeInternal(StatementImpl.java:839) at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:739) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:54) ... 13 more Apr 03, 2017 9:05:52 PM org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources INFO: HHH000476: Executing import script ''org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@487db668'' Hibernate: insert into User (userName, userId) values (?, ?) Apr 03, 2017 9:05:52 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions WARN: SQL Error: 1146, SQLState: 42S02 Apr 03, 2017 9:05:52 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions ERROR: Table ''test.user'' doesn''t exist Apr 03, 2017 9:05:52 PM org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl release INFO: HHH000010: On release of batch it still contained JDBC statements Apr 03, 2017 9:05:52 PM org.hibernate.internal.ExceptionMapperStandardImpl mapManagedFlushFailure ERROR: HHH000346: Error during managed flush [org.hibernate.exception.SQLGrammarException: could not execute statement] Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute statement at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:147) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155) at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:162) at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1434) at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:484) at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3190) at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2404) at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:467) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:146) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$100(JdbcResourceLocalTransactionCoordinatorImpl.java:38) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:220) at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:68) at Main.main(Main.java:23) Caused by: org.hibernate.exception.SQLGrammarException: could not execute statement at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:63) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:208) at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3003) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3503) at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:89) at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:586) at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:460) at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337) at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39) at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1428) ... 9 more Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table ''test.user'' doesn''t exist at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.jdbc.Util.handleNewInstance(Util.java:425) at com.mysql.jdbc.Util.getInstance(Util.java:408) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:943) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2527) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2680) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2501) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858) at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2079) at com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2013) at com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5104) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1998) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:205) ... 18 more


Lo primero que debe hacer aquí es corregir la versión del dialecto de hibernación como lo explicó @JavaLearner. Luego debe asegurarse de que todas las versiones de las dependencias de hibernación que está utilizando estén actualizadas. Por lo general, necesitará: controlador de base de datos como mysql-connector-java , dependencia de hibernate-core : hibernate-core y administrador de entidades de hibernate-entitymanager : hibernate-entitymanager . Por último, no olvide comprobar que las tablas de la base de datos que está utilizando no son las palabras reservadas como order , group , limit , etc. Puede ahorrarle muchos dolores de cabeza.


Recibí este mismo error cuando intentaba hacer una tabla con el nombre "admin". Luego usé la anotación @Table y le di a la tabla un nombre diferente, como @Table (name = "admins"). Creo que algunas palabras están reservadas (como: - palabras clave en java) y no se pueden usar.

@Entity @Table(name = "admins") public class Admin extends TrackedEntity { }


Recibo este error al intentar crear una entidad JPA con el nombre "Usuario" (en Postgres) que está reservado. Entonces, la forma en que se resuelve es cambiar el nombre de la tabla mediante la anotación de la tabla:

@Entity @Table(name="users") public class User {..}

O cambiar el nombre de la tabla manualmente.


Supongo que está utilizando una versión antigua de hibernación. Puedes descargar la última versión, 5.2, desde here .


en su archivo CFG por favor cambie el dialecto de hibernación

<!-- SQL dialect --> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>