Hi John,

Did you mean "QueryResult queryAll()" would be available be default? That would 
sound perfect to me. If there would be just a support for it with naming 
convention, I think it might be quite hard to find it for users. Having just 
empty predicate part after “By” keyword would probably be easier to find if 
depending on naming convention based approach. That is also supported by Spring 
Data.

__
Matti Tahvonen – +358 44 3029728 – Vaadin Ltd - vaadin.com




> On 16 Mar 2017, at 15:23 , John D. Ament <[email protected]> wrote:
> 
> 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/>
>> 

Reply via email to