5

In looking at the Query Creation for the Spring Data JPA Repositories, I'm wondering how I would reuse a parameter. For example, how would I name the method if I wanted to do something like:

@Query("select c from #{#entityName} c where c.lower <= ?1 and c.upper >= ?1")
E findByConversionFor(Double amount);

Can that query be converted to a SpEL method name (to be used by the query builder)?

It seems like a kludge to require the same value to be passed twice:

E findByLowerLessThanOrEqualAndUpperGreaterThanOrEqual(Double a, Double b); // where a==b
Neil Stockton
  • 11,383
  • 3
  • 34
  • 29
end-user
  • 2,845
  • 6
  • 30
  • 56
  • Take a look: https://stackoverflow.com/questions/19417670/using-generics-in-spring-data-jpa-repositories – Rana_S Jun 20 '17 at 20:00

1 Answers1

2

Just mark your parameter with @Param("amount") and then will be able to use it by name:

@Query("select c from #{#entityName} c where c.lower <= :amount and c.upper >= :amount")
Bohdan Levchenko
  • 3,411
  • 2
  • 24
  • 28