SqlManager#getResultList() creates all entity instances and returns a list which contains them. If SQL returns a large result, it causes OutOfMemory.
In these case, you should use SqlManager#iterate() instead of SqlManager#getResultList().
Integer result = sqlManager.iterate( Book.class, new IterationCallback<Book, Integer>() { private int result; @Override public Integer iterate(Book entity) { result = result + entity.price; return result; } }, SQL_PREFIX + "SqlManagerImplTest_selectBooks.sql");
SqlManager#iterate() accepts IterationCallback and invoke it per record. The return value of SqlManager#iterate() is a last returned value from IterationCallback.
Iteration search would be available in Mirage 1.0.3.