docs: public static Specification<JpaAction> hasTargetAssignedArtifact(final String controllerId, final String sha1Hash) {
          return (actionRoot, query, criteriaBuilder) -> {
              final Join<JpaAction, JpaDistributionSet> dsJoin = actionRoot.join(JpaAction_.distributionSet);
              final SetJoin<JpaDistributionSet, JpaSoftwareModule> modulesJoin = dsJoin.join(JpaDistributionSet_.modules);
              final ListJoin<JpaSoftwareModule, JpaArtifact> artifactsJoin = modulesJoin
                      .join(JpaSoftwareModule_.artifacts);
              return criteriaBuilder.and(criteriaBuilder.equal(artifactsJoin.get(JpaArtifact_.sha1Hash), sha1Hash),
                      criteriaBuilder.equal(actionRoot.get(JpaAction_.target).get(JpaTarget_.controllerId),
                              controllerId));
          };
      }