Работает, как вы вставили код. Конечно, вам нужно использовать @Repository в репозитории и удалить @ javax.validation.constraint.NotNull, поскольку это не то, что вам нужно. Кроме того, вы должны убедиться, что у вас есть правильный импорт в POM.
Я бы порекомендовал сделать наоборот, добавив ненулевой API на уровне пакета, затем:
Rule findOneByExpression(@Nullable String expression);
ruleRepository.findOneByExpression(null);
И увидеть, что он потерпит неудачу, если он возвращает ноль. Затем измените это так:
@Nullable
Rule findOneByExpression(@Nullable String expression);
И это пройдет.