Browse Source

No need to initialize IdentifierLoadAccess for each record

Martin Tzvetanov Grigorov 11 years ago
parent
commit
9b667f9921
1 changed files with 7 additions and 3 deletions
  1. 7 3
      wicket/src/main/java/hellowicket/HelloDbResponse.java

+ 7 - 3
wicket/src/main/java/hellowicket/HelloDbResponse.java

@@ -4,6 +4,7 @@ import java.io.IOException;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.ThreadLocalRandom;
 
 
 import org.apache.wicket.request.resource.AbstractResource;
 import org.apache.wicket.request.resource.AbstractResource;
+import org.hibernate.IdentifierLoadAccess;
 import org.hibernate.Session;
 import org.hibernate.Session;
 
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -14,6 +15,7 @@ public class HelloDbResponse extends AbstractResource
 
 
   private static final int DB_ROWS = 10000;
   private static final int DB_ROWS = 10000;
 
 
+  private static final String CONTENT_TYPE = "application/json";
   private static final ObjectMapper mapper = new ObjectMapper();
   private static final ObjectMapper mapper = new ObjectMapper();
 
 
   protected ResourceResponse newResourceResponse(Attributes attributes)
   protected ResourceResponse newResourceResponse(Attributes attributes)
@@ -23,16 +25,18 @@ public class HelloDbResponse extends AbstractResource
     final ThreadLocalRandom random = ThreadLocalRandom.current();
     final ThreadLocalRandom random = ThreadLocalRandom.current();
 
 
     final ResourceResponse response = new ResourceResponse();
     final ResourceResponse response = new ResourceResponse();
-    response.setContentType("application/json");
+    response.setContentType(CONTENT_TYPE);
 
 
-    response.setWriteCallback(new WriteCallback() {
+    response.setWriteCallback(new WriteCallback()
+    {
       public void writeData(Attributes attributes)
       public void writeData(Attributes attributes)
       {
       {
         final Session session = HibernateUtil.getSessionFactory().openSession();
         final Session session = HibernateUtil.getSessionFactory().openSession();
 
 
+        IdentifierLoadAccess loader = session.byId(World.class);
         for (int i = 0; i < queries; i++)
         for (int i = 0; i < queries; i++)
         {
         {
-          worlds[i] = (World)session.byId(World.class).load(random.nextInt(DB_ROWS) + 1);
+          worlds[i] = (World) loader.load(random.nextInt(DB_ROWS) + 1);
         }
         }
 
 
         session.close();
         session.close();