Để duy trì "độc lập" như bạn nói đối với cơ sở dữ liệu và nhà cung cấp JPA, tôi sẽ tránh getSingleResult () và tìm nạp danh sách () và khớp trong bộ nhớ cho tên. Có thể bạn sẽ nhận được nhiều hơn một nhưng không phải 100 hoặc nhiều hơn.
Một cách khác có thể là lưu tên được chuẩn hóa (cắt bớt, thành chữ thường) trong một trường mới.