For at forblive "uafhængig", som du siger for database og JPA-udbyder, ville jeg undgå getSingleResult() og hente listen() og matche navnet i hukommelsen. Sandsynligvis får du mere end én, men ikke 100 eller mere.
En anden måde kunne være at gemme navnet normaliseret (trimmet, til små bogstaver) i et nyt felt.