Fauna Europaea Import
[cdmlib.git] / cdmlib-io / src / main / java / eu / etaxonomy / cdm / io / faunaEuropaea / FaunaEuropaeaImportBase.java
index 7bf62a27be374c07a582ccfe9828f6a9c408de3d..57ed27050556c4331bdf42e6d6142aa8af5949e6 100644 (file)
@@ -17,6 +17,7 @@ import java.util.HashMap;
 import java.util.Map;\r
 \r
 import org.apache.log4j.Logger;\r
+import org.springframework.transaction.TransactionStatus;\r
 \r
 import eu.etaxonomy.cdm.common.CdmUtils;\r
 import eu.etaxonomy.cdm.io.common.CdmImportBase;\r
@@ -136,14 +137,16 @@ implements ICdmImport<FaunaEuropaeaImportConfigurator,FaunaEuropaeaImportState>
                                        + ", n = " + n); \r
                }\r
 \r
-               // save taxa in chunks of <=limit\r
+               // save taxa in blocks of <=limit\r
                \r
                for (int j = 1; j <= n + 1; j++)\r
                {\r
                        int offset = j - 1;\r
                        int start = offset * limit;\r
 \r
-                       if(logger.isInfoEnabled()) { logger.info("Saving taxa: " + start + " - " + (start + limit - 1)); }\r
+                       if(logger.isInfoEnabled()) { \r
+                               logger.info("Saving taxa: " + start + " - " + (start + limit - 1)); \r
+                       }\r
 \r
                        if(logger.isInfoEnabled()) { \r
                                logger.info("index = " + j \r
@@ -153,13 +156,20 @@ implements ICdmImport<FaunaEuropaeaImportConfigurator,FaunaEuropaeaImportState>
                        \r
                        if (j == n + 1) {\r
                                limit = nbrOfTaxa - n * limit;\r
-                               if(logger.isInfoEnabled()) { logger.info("n = " + n + ", limit = " + limit); }\r
+                               if(logger.isInfoEnabled()) { \r
+                                       logger.info("n = " + n + ", limit = " + limit); \r
+                               }\r
                        }\r
 \r
+               TransactionStatus txStatus = startTransaction();\r
+               \r
                        Collection<TaxonBase> taxonMapPart = taxonStore.objects(start, limit);\r
                        getTaxonService().saveTaxonAll(taxonMapPart);\r
                        taxonMapPart = null;\r
-                       //taxonStore.removeObjects(start, limit);\r
+                       taxonStore.removeObjects(start, limit);\r
+                       \r
+                       commitTransaction(txStatus);\r
+\r
                }\r
                \r
                return success;\r