diff --git a/src/caoscrawler/identifiable_adapters.py b/src/caoscrawler/identifiable_adapters.py
index 1d4ef209d401fbc86fbcd8b2693e9a894bd679ea..9122cc4a882b94e3a6bba27921f59bc4bbc9d9a0 100644
--- a/src/caoscrawler/identifiable_adapters.py
+++ b/src/caoscrawler/identifiable_adapters.py
@@ -27,6 +27,7 @@ from __future__ import annotations
 import yaml
 
 from datetime import datetime
+from caosdb.cached import cached_get_entity_by
 from typing import Any
 from .identifiable import Identifiable
 import caosdb as db
@@ -274,9 +275,9 @@ identifiabel, identifiable and identified record) for a Record.
         be found return value is None.
         """
         if record.path is not None:
-            return db.get_entity_by_path(record.path)
+            return cached_get_entity_by(path=record.path)
         if record.id is not None:
-            return db.get_entity_by_id(record.id)
+            return cached_get_entity_by(eid=record.id)
 
         identifiable = self.get_identifiable(record, referencing_entities=referencing_entities)
 
@@ -453,7 +454,7 @@ class CaosDBIdentifiableAdapter(IdentifiableAdapter):
         # TODO is this needed for Identifiable?
         # or can we get rid of this function?
         if isinstance(identifiable, db.Entity):
-            return db.get_entity_by_path(identifiable)
+            return cached_get_entity_by(path=identifiable)
         if identifiable.path is None:
             raise RuntimeError("Path must not be None for File retrieval.")
         candidates = db.execute_query("FIND File which is stored at '{}'".format(