Package giis.demo.descuento
Interface ClienteRepository
- All Superinterfaces:
org.springframework.data.repository.CrudRepository<Cliente,,String> org.springframework.data.repository.Repository<Cliente,String>
public interface ClienteRepository
extends org.springframework.data.repository.CrudRepository<Cliente,String>
Logica de negocio: Spring autogenera todos los DAOs y otros metodos del repositorio, aqui solo se
implementan los metodos adicionales que se necesiten.
-
Method Summary
Modifier and TypeMethodDescriptionfindAll()getListaDescuentos(Integer edad) Obtencion de la lista de clientes y descuentos a partir de una cierta edad.Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, deleteAll, deleteAll, deleteAllById, deleteById, existsById, findAllById, findById, save, saveAll
-
Method Details
-
getListaDescuentos
@Query("SELECT new giis.demo.descuento.DescuentoDisplayDTO(\n\tid,\n\tCASE WHEN nuevo=\'S\' and cupon=\'N\' and tarjeta=\'N\' then 15\n\t\tWHEN nuevo=\'S\' and cupon=\'S\' and tarjeta=\'N\' then 20\n\t\tWHEN nuevo=\'N\' and cupon=\'S\' and tarjeta=\'N\' then 20\n\t\tWHEN nuevo=\'N\' and cupon=\'N\' and tarjeta=\'S\' then 10\n\t\tWHEN nuevo=\'N\' and cupon=\'S\' and tarjeta=\'S\' then 30\n\t\tELSE 0 END)\nFROM Cliente\nWHERE NOT (nuevo=\'S\' AND tarjeta=\'S\')\n\tAND NOT (nuevo=\'N\' AND tarjeta=\'N\' AND cupon=\'N\')\n\tAND (edad >= :edad OR :edad IS NULL)\n") List<DescuentoDisplayDTO> getListaDescuentos(@Param("edad") Integer edad) Obtencion de la lista de clientes y descuentos a partir de una cierta edad. Podria implementarse en un servicio o con codigo java en el repositorio, pero se muestra aqui una de las formas de definir de forma declarativa la query mediante JQL. Notar que la sintaxis es como SQL, pero en este caso, la estructura devuelta no es un objeto Cliente, sino un DTO. Ver mas informacion en: https://www.petrikainulainen.net/programming/spring-framework/spring-data-jpa-tutorial-creating-database-queries-with-the-query-annotation/ y en: https://stackoverflow.com/questions/36328063/how-to-return-a-custom-object-from-a-spring-data-jpa-group-by-query -
findAll
-