За да остана "независим", както казвате за доставчик на база данни и JPA, бих избегнал getSingleResult() и бих изтеглил списъка() и съвпадение в паметта за името. Вероятно ще получите повече от един, но не и 100 или повече.
Друг начин може да бъде да запазите името нормализирано (подрязано, с малки букви) в ново поле.