I have tried to execute the Hibernate Demo application. I’m getting the below error message.
Database: PostgreSQL Hibernate Version: 5
Source code for Bean class package com.javatpoint;
import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity public class Employee { @Id private int id; private String firstName,lastName; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } }
Test class package com.javatpoint;
import org.hibernate.*; import org.hibernate.cfg.*; public class Test { public static void main(String[] args) { Configuration cfg=new Configuration(); cfg.configure("/hibernate.cfg.xml"); SessionFactory sf=cfg.buildSessionFactory(); Session session=sf.openSession(); Transaction t=session.beginTransaction(); Employee e1=new Employee(); e1.setId(1001); e1.setFirstName("sonoo"); e1.setLastName("jaiswal"); Employee e2=new Employee(); e2.setId(1002); e2.setFirstName("vimal"); e2.setLastName("jaiswal"); session.persist(e1); session.persist(e2); t.commit(); session.close(); System.out.println("successfully saved"); } }
hibernate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <!-- Generated by MyEclipse Hibernate Tools. --> <hibernate-configuration> <session-factory> <property name="hbm2ddl.auto">create</property> <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property> <property name="connection.url">jdbc:postgresql://localhost:5555/postgres</property> <property name="connection.username">postgres</property> <property name="connection.password">password</property> <property name="connection.driver_class">org.postgresql.Driver</property> <mapping class="com.javatpoint.Employee"/> </session-factory>
Error Message
Jun 18, 2016 12:06:34 AM org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {5.2.0.Final} Jun 18, 2016 12:06:34 AM org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Jun 18, 2016 12:06:34 AM org.hibernate.cfg.Environment buildBytecodeProvider INFO: HHH000021: Bytecode provider name : javassist Jun 18, 2016 12:06:34 AM org.hibernate.boot.jaxb.internal.stax.LocalXmlResourceResolver resolveEntity WARN: HHH90000012: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/hibernate-configuration. Use namespace http://www.hibernate.org/dtd/hibernate-configuration instead. Support for obsolete DTD/XSD namespaces may be removed at any time. Jun 18, 2016 12:06:35 AM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit> INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final} Jun 18, 2016 12:06:35 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure WARN: HHH10001002: Using Hibernate built-in connection pool (not for production use!) Jun 18, 2016 12:06:35 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001005: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://localhost:5555/postgres] Jun 18, 2016 12:06:35 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001001: Connection properties: {user=postgres, password=****} Jun 18, 2016 12:06:35 AM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator INFO: HHH10001003: Autocommit mode: false Jun 18, 2016 12:06:35 AM org.hibernate.engine.jdbc.connections.internal.PooledConnections <init> INFO: HHH000115: Hibernate connection pool size: 20 (min=1) Jun 18, 2016 12:06:35 AM org.hibernate.dialect.Dialect <init> INFO: HHH000400: Using dialect: org.hibernate.dialect.PostgreSQLDialect Jun 18, 2016 12:06:35 AM org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl useContextualLobCreation INFO: HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException Jun 18, 2016 12:06:35 AM org.hibernate.type.BasicTypeRegistry register INFO: HHH000270: Type registration [java.util.UUID] overrides previous : org.hibernate.type.UUIDBinaryType@236e3f4e Jun 18, 2016 12:06:36 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper$StandardWarningHandler logWarning WARN: SQL Warning Code: 0, SQLState: 00000 Jun 18, 2016 12:06:36 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper$StandardWarningHandler logWarning WARN: schema "hibernatedemo" does not exist, skipping Jun 18, 2016 12:06:36 AM org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Unable to execute command [create table HibernateDemo.Employee (id int4 not null, firstName varchar(255), lastName varchar(255), primary key (id))] org.hibernate.tool.schema.spi.CommandAcceptanceException: Unable to execute command [create table HibernateDemo.Employee (id int4 not null, firstName varchar(255), lastName varchar(255), primary key (id))] at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:63) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:434) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:419) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:310) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:165) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:134) at org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:120) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:148) at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:65) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:308) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:476) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:707) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:723) at com.javatpoint.Test.main(Test.java:11) Caused by: org.postgresql.util.PSQLException: ERROR: schema "hibernatedemo" does not exist Position: 14 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2284) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2003) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:200) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:424) at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:321) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:313) at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:51) ... 13 more Jun 18, 2016 12:06:36 AM org.hibernate.tool.schema.internal.SchemaCreatorImpl applyImportSources INFO: HHH000476: Executing import script 'org.hibernate.tool.schema.internal.exec.ScriptSourceInputNonExistentImpl@13f17eb4' Jun 18, 2016 12:06:36 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions WARN: SQL Error: 0, SQLState: 42P01 Jun 18, 2016 12:06:36 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions ERROR: ERROR: relation "hibernatedemo.employee" does not exist Position: 13 Jun 18, 2016 12:06:36 AM org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl release INFO: HHH000010: On release of batch it still contained JDBC statements Jun 18, 2016 12:06:36 AM 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.flush(SessionImpl.java:1402) at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:472) at org.hibernate.internal.SessionImpl.flushBeforeTransactionCompletion(SessionImpl.java:3132) at org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2369) at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:467) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:147) 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:221) at org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:68) at com.javatpoint.Test.main(Test.java:28) Caused by: org.hibernate.exception.SQLGrammarException: could not execute statement at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106) 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:207) at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2934) at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3434) at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:89) at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:560) at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:434) 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.flush(SessionImpl.java:1396) ... 9 more Caused by: org.postgresql.util.PSQLException: ERROR: relation "hibernatedemo.employee" does not exist Position: 13 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2284) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2003) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:200) at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:424) at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:161) at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:133) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:204) ... 18 more
Advertisement
Answer
Hibernate is trying to create entity in hibernatedemo schema. You need to create that schema in database. I did not see your configuration that is pointing to hibernatedemo schema. The cfg.xml is generated by MyEclipse Hibernate tools. Check that configuratioon.
How to create schema in PostGreSQL Link
CREATE SCHEMA IF NOT EXISTS schema_name
After creating schema try again to start your application