Oops! 
    there is a typo in the sample code that I sent (not the one that I
    am executing).  
    The following line in the for loop  
     
    System.out.println("lastname:" +
        entity.get("lastname")) 
     
    should be replaced by 
     
        System.out.println("firstname:" + entity.get("firstname")) 
     
     
    This is doing an extra query for each entity. 
     
     
    On 1/12/2011 7:14 PM, Rohit Banga wrote:
    
      
      Hi All 
       
      I am trying to fetch a specific set of attributes using
      Eclipselink fetchgroups. 
      To invoke the program I use the following command: 
       
      java -cp "%CLASSPATH%" -javaagent:<path of
          eclipselink.jar> <class name> 
       
      The SQL query generated is 
       
        SELECT id, firstname from empinfo; 
       
      which is correct. 
       
      However for each iteration of the loop, an extra SQL query is
      made. Am I missing anything here? 
       
       
      Here is the code I am using: 
       
       
                  DatabaseSession session = new
          DatabaseSessionImpl(login); 
           
                 
            session.setProperty(PersistenceUnitProperties.WEAVING,
            "true"); 
                   
            session.setProperty(PersistenceUnitProperties.WEAVING_FETCHGROUPS,
            "true"); 
                    session.login(); 
           
                  DynamicHelper helper = new DynamicHelper(session); 
                  DynamicClassLoader dcl =
          helper.getDynamicClassLoader(); 
           
                  Class<?> empType =
          dcl.createDynamicClass("jpatest.empinfo"); 
                  DynamicTypeBuilder typeBuilder = new
          JPADynamicTypeBuilder(empType, null, "empinfo"); 
                  typeBuilder.setPrimaryKeyFields("id"); 
                  typeBuilder.addDirectMapping("id", int.class, "id"); 
                  typeBuilder.addDirectMapping("firstname",
          String.class, "firstname"); 
                  typeBuilder.addDirectMapping("lastname", String.class,
          "lastname"); 
           
                  helper.addTypes(false, false, typeBuilder.getType()); 
           
                  ReadAllQuery query = new
DynamicHelper(session).newReadAllQuery(typeBuilder.getType().getDescriptor().getAlias()); 
                  FetchGroup fg = new FetchGroup(); 
                    fg.addAttribute("id"); 
                    fg.addAttribute("firstname"); 
                    query.setFetchGroup(fg); 
           
                  query.prepareCall(session, new DatabaseRecord()); 
           
                  System.out.println("query: " + query.getSQLString()); 
           
                  List<DynamicEntity> emps =
          (List<DynamicEntity>) session.executeQuery(query); 
           
                  for (DynamicEntity entity : emps) 
                  { 
                      System.out.println("id:" + entity.get("id")); 
                      System.out.println("lastname:" +
          entity.get("lastname")); 
                      System.out.println(); 
                  } 
       
       
      --  
        Thanks and Regards  
        Rohit Banga  
        Member Technical Staff  
        Oracle Server Technologies  
       
      
 
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
     
     
    --  
      Thanks and Regards
       
      Rohit Banga
       
      Member Technical Staff
       
      Oracle Server Technologies
       
     
  
 |