Matti, Glad that worked. I'll point out that's HQL, so hibernate specific (I wasn't sure if you were using hibernate or not).
I think a method like what you're describing makes sense. The problem is that the find prefix is a bit overloaded for this use case. Do you think a "queryAll" method would work? John On Thu, Mar 16, 2017 at 8:50 AM Matti Tahvonen <[email protected]> wrote: > Thanks John, that’s indeed a better workaround. It can still be simplified > to : > > @Query("from Person") > QueryResult<Person> findAllPersons(); > > But I still think it would be cool if empty “QueryResult findAllBy()” > would work out of the box. With Spring Data you can do pretty much the > same. I created following Jira issue for it: > https://issues.apache.org/jira/browse/DELTASPIKE-1239 > > __ > Matti Tahvonen – +358 44 3029728 <+358%2044%203029728> – Vaadin Ltd - > vaadin.com > > > > On 15 Mar 2017, at 14:06 , John D. Ament <[email protected]> wrote: > > > > Hi, > > > > So here's the example from the page.. > > > > @Repository > > public interface PersonRepository extends EntityRepository<Person, Long> > > { > > > > @Query("select p from Person p where p.age between ?1 and ?2") > > QueryResult<Person> findAllByAge(int minAge, int maxAge); > > > > } > > > > We're not using a predicate per-se, but its using an inlined query. > > Unfortunately, any method defined in EntityRepository uses a default > > handler that's not overridable (I found it hard to add Optional/Stream > > support). I would do something like the documentation > > > > @Repository > > public interface PersonRepository extends EntityRepository<Person, Long> > > { > > > > @Query("select p from Person p") > > QueryResult<Person> findAllPersons(); > > > > } > > > > Unless you're using the persistence operations as well, it may just be > > easier to not have the base interface. > > > > John > > > > On Wed, Mar 15, 2017 at 7:12 AM Matti Tahvonen <[email protected] > <mailto:[email protected]>> wrote: > > > >> Hi, > >> > >> My colleague is preparing an example for Vaadin 8 that uses DeltaSpike > >> Data (as per my suggestion). We had a hard time finding a solution where > >> you could return QueryResult form a JPA Repository, without having any > >> predicates. We want to use QueryResult as it is easy to do sorting and > >> paging using it, but just want to get all results from the database. In > >> other words we’d need an alternative to findAll that returns > QueryResult. > >> > >> The workaround was to add a dummy predicate, but that’s not too pretty: > >> > >> > https://github.com/alejandro-du/lazy-loading-cdi-demo/blob/master/src/main/java/com/example/PersonService.java#L23 > >> > >> QueryResult findBy() or QueryResult findAllBy() don’t seem to work. Any > >> ideas how this should be tackled? > >> > >> __ > >> Matti Tahvonen – +358 44 3029728 <+358%2044%203029728> > <+358%2044%203029728> – Vaadin Ltd - > >> vaadin.com <http://vaadin.com/> >
