+ return obj
+
+ @classmethod
+ def by_id(cls, db_conn: DatabaseConnection,
+ id_: BaseModelId | None,
+ # pylint: disable=unused-argument
+ create: bool = False) -> Self:
+ """Retrieve by id_, on failure throw NotFoundException."""
+ obj = None
+ if id_ is not None:
+ obj = cls._by_id(db_conn, id_)
+ if obj:
+ return obj
+ if create:
+ obj = cls(id_)
+ return obj
+ raise NotFoundException(f'found no object of ID {id_}')