Estoy buscando en Spring Data JPA. Considere el siguiente ejemplo en el que obtendré toda la funcionalidad crud y finder funcionando por defecto y si quiero personalizar un buscador, eso también se puede hacer fácilmente en la interfaz misma.Cómo agregar un método personalizado a Spring Data JPA
@Transactional(readOnly = true)
public interface AccountRepository extends JpaRepository<Account, Long> {
@Query("<JPQ statement here>")
List<Account> findByCustomer(Customer customer);
}
Me gustaría saber cómo puedo agregar un método personalizado completo con su implementación para el AccountRepository anterior? Como es una Interfaz, no puedo implementar el método allí.
¿Puede esta implementación personalizada inyectar el repositorio real, por lo que puede utilizar los métodos definidos allí? Específicamente, me gustaría hacer referencia a varias funciones de find * definidas en la interfaz del repositorio en una implementación de hallazgo de nivel superior. Como esas funciones de find *() no tienen una implementación, no puedo declararlas en la interfaz personalizada o en la clase Impl. – JBCP
He seguido esta respuesta, desafortunadamente ahora Spring Data está tratando de encontrar la propiedad "customMethod" en mi objeto "Cuenta" ya que está tratando de generar automáticamente una consulta para todos los métodos definidos en el AccountRepository. ¿Alguna forma de detener esto? –
@NickFoote tenga en cuenta que el nombre de la clase que implementa su repositorio debe ser: 'AccountRepositoryImpl' no:' AccountRepositoryCustomImpl', etc. - es una convención de nomenclatura muy estricta. – Xeon