CrudRepository, Spring al rescate de nuestro generico.

Spring framework es algo enorme, monstruoso con patterns inagotables.
Decir que lucha codo a codo con EJB ya es comparar dos cosas cada vez mas diferentes.
Si, con Spring Boot, por ejemplo, estamos mas cerca de un Node.JS que un EJB Container simplemente porque Spring intenta ser totalmente independiente de cualquier especificación.
Pero antes de comenzar a hablar muy brevemente de CrudRepository podemos estar totalmente de acuerdo en que Spring framework evoluciona favorablemente. Eso no lo podemos discutir.

Que es CrudRepository?

Bien, por empezar CRUD es algo que todos realizamos en el desarrollo de software. Y hasta no hace mucho tiempo, cuando los genéricos se implementaron en lenguajes Java y C# pudimos utilizarlos hasta construir un DAO totalmente vacío y heredado.

Si bien, hoy no voy a hablar en detalle de un GenericDAO, lo usual es crearse uno propio por única vez para todos los proyectos que lo utilicen.

CrudRepository es una interfaz de Spring, que nos provee este mecanismo sin necesidad de construir nuestro GenericDAO.

Algunos puntos interesantes, solo se utiliza la interfaz, no se utiliza la implementación. Y lo mas interesante es que maneja métodos de búsquedas y ordenamientos de manera automática. Por ejemplo:

public interface PersonRepository extends Repository<User, Long> { … }

List<Person> findByLastname(String lastname);

El metodo finByLastName creado por nosotros no necesita implementación y Query alguna, al escribirla en la interfaz ya puede ser utilizado en cualquier Controller.

Increíble, verdad? Esto solo es el comienzo.

Anuncios