Il sito dedicato all'informatica ideato da Iasparra Francesco
In questo semplice esempio sono riportati due modalita' per ottenere il risultato di una query utilizzando HQL di Hibernate. Nel primo metodo si fa uso dell'oggetto ScrollableResults che ha alcuni vantaggi rispetto al metodo ".list()" della createQuery, esso infatti permette di risparmiare memoria.
Integer size=0; Session sessionH=null; try { sessionH = HibernateSessionFactory.currentSession(null); Query crit=null; List records=null; crit=sessionH.createQuery("FROM ec_articolo"); // METODO MIGLIORE // SI OTTIENE IL NUMERO DI ELEMENTI SENZA ALLOCARILI IN MEMORIA // GLI ELEMENTO SONO ALLOCATI SOLO SE RICHIESTI CON IL METODO GET System.out.println("***SCROLL***"); ScrollableResults scr = crit.scroll(); scr.last(); size=scr.getRowNumber(); /* scr.first(); while (true) { ec_articolo art=(ec_articolo) scr.get(0); if (!scr.next())break; }*/ // METODO SCONSIGLIATO I RECORD SONO TUTTI ALLOCATI IN MEMORIA System.out.println("***LIST***"); records=crit.list(); size=records.size(); /* for (int i=0;i<size;i++){ ec_articolo art=(ec_articolo) records.get(i); }*/ } catch (Exception e){ System.out.println(e.toString()); }