Omezení počtu řádků je skvělý způsob, jak urychlit automatické doplňování. Není mi jasné, proč byste omezovali 1000 řádků:nemůžete zobrazit 1000 položek v rozevíracím seznamu; neměli byste se omezit třeba na 10 položek?
Na základě vašich komentářů níže je zde příklad databázového dotazu, který byste měli být schopni přizpůsobit vaší situaci:
String queryString = "select distinct b.title from Books b where b.title like ':userValue'";
Query query = entityManager.createQuery(queryString);
query.setParameter("userValue", userValue + "%");
query.setMaxResults(20);
List<String> results = query.getResultList();