diff --git a/src/main/java/org/caosdb/server/jobs/core/ExecuteQuery.java b/src/main/java/org/caosdb/server/jobs/core/ExecuteQuery.java
index b6583f024071e3c1151cf974b387ffe72d1579b7..7f5444b36104526101ebf9b3f2aa547b3d91cbc9 100644
--- a/src/main/java/org/caosdb/server/jobs/core/ExecuteQuery.java
+++ b/src/main/java/org/caosdb/server/jobs/core/ExecuteQuery.java
@@ -22,6 +22,7 @@
  */
 package org.caosdb.server.jobs.core;
 
+import org.caosdb.server.entity.EntityInterface;
 import org.caosdb.server.entity.Message;
 import org.caosdb.server.jobs.FlagJob;
 import org.caosdb.server.jobs.JobAnnotation;
@@ -51,5 +52,8 @@ public class ExecuteQuery extends FlagJob {
       getContainer().addMessage(new Message(e.getMessage()));
     }
     getContainer().addMessage(queryInstance);
+    for (EntityInterface entity : getContainer()) {
+      getTransaction().getSchedule().addAll(loadJobs(entity, getTransaction()));
+    }
   }
 }
diff --git a/src/main/java/org/caosdb/server/jobs/core/RetrieveAllJob.java b/src/main/java/org/caosdb/server/jobs/core/RetrieveAllJob.java
index 1ca43cec45413d80c307df2f4d09c6b8d34cfb49..603d861ad24b659fab262291d888420c02f6bcf5 100644
--- a/src/main/java/org/caosdb/server/jobs/core/RetrieveAllJob.java
+++ b/src/main/java/org/caosdb/server/jobs/core/RetrieveAllJob.java
@@ -23,6 +23,7 @@
 package org.caosdb.server.jobs.core;
 
 import org.caosdb.server.database.backend.transaction.RetrieveAll;
+import org.caosdb.server.entity.EntityInterface;
 import org.caosdb.server.jobs.FlagJob;
 import org.caosdb.server.jobs.JobAnnotation;
 import org.caosdb.server.jobs.JobExecutionTime;
@@ -37,6 +38,9 @@ public class RetrieveAllJob extends FlagJob {
         value = "ENTITY";
       }
       execute(new RetrieveAll(getContainer(), value));
+      for (EntityInterface entity : getContainer()) {
+        getTransaction().getSchedule().addAll(loadJobs(entity, getTransaction()));
+      }
     }
   }
 }
diff --git a/src/main/java/org/caosdb/server/transaction/Transaction.java b/src/main/java/org/caosdb/server/transaction/Transaction.java
index 6fb28c6fa134c4945161422f77ace01079152fed..b0f8710575375f82f0a7290c04ae8a7392a40af0 100644
--- a/src/main/java/org/caosdb/server/transaction/Transaction.java
+++ b/src/main/java/org/caosdb/server/transaction/Transaction.java
@@ -105,17 +105,7 @@ public abstract class Transaction<C extends TransactionContainer> extends Abstra
 
       // additionally load datatype job
       if (e.hasValue()) {
-        boolean found = false;
-        for (final Job j : loadJobs) {
-
-          if (CheckDatatypePresent.class.isInstance(j)
-              && ((CheckDatatypePresent) j).getEntity() == e) {
-            found = true;
-          }
-        }
-        if (!found) {
-          this.schedule.add(new CheckDatatypePresent().init(Mode.MUST, e, this));
-        }
+        this.schedule.add(new CheckDatatypePresent().init(Mode.MUST, e, this));
       }
 
       // load pickup job if necessary