Hibernate with PostgreSQL server

Performance Result Summary

The final position of Hibernate with PostgreSQL server in the speed performance tests is 8 out of 32,

The following charts show Hibernate with PostgreSQL server relatively to other tested JPA/DBMS combinations.

Position #1 on the X-Axis (the fastest) is about 100 times faster than position #32 (the slowest).
In the chart below the Y-Axis represents result score (maximum 100) in logarithmic scale - higher is better:
JPA performance benchmark comparision Hibernate, EclipseLink, OpenJPA, DataNucleus, ObjectDB
In the chart below the Y-Axis represents result score (maximum 100) in linear scale - higher is better:
JPA performance benchmark comparision Hibernate, EclipseLink, OpenJPA, DataNucleus, ObjectDB

Hibernate with PostgreSQL server Problems (Exceptions)

Hibernate with PostgreSQL server has failed in the following tests (throwing the following stack traces):

  • Multithreading Test - Update Operations - Few Entities (5/100)
    javax.persistence.RollbackException: Error while committing the transaction
    	at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:93)
    	at org.jpab.Test.doAction(Test.java:271)
    	at org.jpab.Runner$UpdateAction.run0(Runner.java:564)
    	at org.jpab.Runner$TestAction.run(Runner.java:507)
    	at java.lang.Thread.run(Thread.java:619)
    Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
    	at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1235)
    	at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1168)
    	at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:81)
    	... 4 more
    Caused by: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
    	at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
    	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
    	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
    	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
    	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:262)
    	at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:179)
    	at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
    	at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51)
    	at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1206)
    	at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:375)
    	at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137)
    	at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:76)
    	... 4 more
    Caused by: java.sql.BatchUpdateException: Batch entry 1 update Person set birthDate='1956-09-15 +03:00:00', city='XPCNOZUAKIJBQIVW', country='GTKNV', email='FXNXPRNO@NSVI.JEH', firstName='VPAQHJRNT', joinDate='1979-03-05 +02:00:00', lastLoginDate='2010-09-09 +03:00:00', lastName='FIKXUBCDSP', loginCount='173', middleName='QGAXGU', phone='221668502734689', state='DP', street='UPPDCMHIQXS', zip='456616781' where id='107279' was aborted.  Call getNextException to see the cause.
    	at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2569)
    	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1796)
    	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:407)
    	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2708)
    	at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
    	at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
    	... 12 more
    

The following runs have been stopped due to being too slow

  • Element Collection Test - Removal Operations - Many Entities (5000)

Hibernate with PostgreSQL server compared to the alternatives

See head to head comparisons of Hibernate with PostgreSQL server vs the following compatitors: