KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have the following hibernate query: Query query = session.createQuery("from MyHibernateClass"); List<MyHibernateClass> result = query.list();// executes in 7000ms When logging the sql being executed in MySQL I see select myhibernat0_.myFirstColumn as myfirstcolumn92_, myhibernat0_.mySecondColumn as mysecondcolumn92_, myhibernat0_.mythirdcolumn as mythirdcolumn92_, myhibernat0_.myFourthColumn as myfourthcolumn92_ from MyHibernateClass myhibernat0_ where (1=1); When measurering the java code in the jvm on a small dataset of 3500 rows in MyHibernateClass database table this takes about 7000ms. If I on the otherhand uses direct jdbc as follows: Statement statement = session.connection().createStatement(); ResultSet rs = statement.executeQuery("select * from MyHibernateClass");// 7ms List<MyHibernateClass> result = convert(rs);// executes in 20ms I see the same sql going into the database but now the time spend in the java code in the jvm is 7ms. The MyHibernateClass is a simple java bean class with getters and setters, I use no special resulttransformers as can be seen in the example. I only need a read-only instance of the class, and it doesn't need to be attached to the hibernate session. I would rather like to use the hibernate version but cannot accept the execution times. Added information : After adding hibernate logging I see [2011-07-07 14:26:26,643]DEBUG [main] [logid: ] - org.hibernate.jdbc.AbstractBatcher.logOpenResults(AbstractBatcher.java:426) - about to open ResultSet (open ResultSets: 0, globally: 0) followed by 3500 of the following log statements [2011-07-07 14:26:26,649]DEBUG [main] [logid: ] - org.hibernate.loader.Loader.getRow(Loader.java:1197) - result row: EntityKey[com.mycom.MyHibernateClass#1]
Tags (comma-separated)
Save Edits
Cancel