Author: tchemit Date: 2011-12-27 12:05:51 +0100 (Tue, 27 Dec 2011) New Revision: 219 Url: http://forge.codelutin.com/repositories/revision/echobase/219 Log: try another improvement Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbExportService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportService.java trunk/pom.xml Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbExportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbExportService.java 2011-12-27 10:22:13 UTC (rev 218) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbExportService.java 2011-12-27 11:05:51 UTC (rev 219) @@ -103,7 +103,7 @@ } //TODO Test this : this will refresh the hibernate session ? try this to improve export times... - getTransaction().rollbackTransaction(); +// getTransaction().rollbackTransaction(); } EchoBaseIOUtil.compressZipFile(zipFile, dir); Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportService.java 2011-12-27 10:22:13 UTC (rev 218) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/ExportService.java 2011-12-27 11:05:51 UTC (rev 219) @@ -32,11 +32,13 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.util.EntityOperator; import org.nuiton.util.TimeLog; import org.nuiton.util.csv.Export; import org.nuiton.util.csv.ExportModel; import java.io.File; +import java.util.Iterator; import java.util.List; /** @@ -142,8 +144,21 @@ DbEditorService service = getService(DbEditorService.class); TableMeta tableMeta = service.getTableMeta(associationMeta.getSource()); - List<TopiaEntity> datas = service.getEntities(tableMeta, null, null, null, "size(e." + associationMeta.getName() + ") > 0"); - + long s0 = TimeLog.getTime(); +// List<TopiaEntity> datas = service.getEntities(tableMeta, null, null, null, "size(e." + associationMeta.getName() + ") > 0"); + List<TopiaEntity> datas = service.getEntities(tableMeta, null, null, null, null); + timeLog.log(s0, "prepareExport::getEntities"); + s0 = TimeLog.getTime(); + EntityOperator<TopiaEntity> operator = associationMeta.getOperator(); + Iterator<TopiaEntity> itr = datas.iterator(); + while (itr.hasNext()) { + TopiaEntity entity = itr.next(); + int size = operator.sizeChild(associationMeta.getName(), entity); + if (size == 0) { + itr.remove(); + } + } + timeLog.log(s0, "prepareExport::removeEmptyChilds"); ExportModel<TopiaEntity> model = buildForExport(associationMeta); return Export.newExport(model, datas); } Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-12-27 10:22:13 UTC (rev 218) +++ trunk/pom.xml 2011-12-27 11:05:51 UTC (rev 219) @@ -110,7 +110,7 @@ <topiaVersion>2.6.4</topiaVersion> <nuitonUtilsVersion>2.4.1</nuitonUtilsVersion> <nuitonI18nVersion>2.4.1</nuitonI18nVersion> - <nuitonWebVersion>1.8</nuitonWebVersion> + <nuitonWebVersion>1.10-SNAPSHOT</nuitonWebVersion> <msaccessImporterVersion>1.4.1</msaccessImporterVersion> <struts2Version>2.3.1</struts2Version> <jqueryPluginVersion>3.2.0</jqueryPluginVersion>