Um "unabhängig" zu bleiben, wie Sie für Datenbank- und JPA-Anbieter sagen, würde ich getSingleResult() vermeiden und die list() abrufen und im Speicher für den Namen abgleichen. Wahrscheinlich erhalten Sie mehr als eine, aber nicht 100 oder mehr.
Eine andere Möglichkeit wäre, den Namen normalisiert (gekürzt, auf Kleinbuchstaben) in einem neuen Feld zu speichern.