Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
	@Autowired
	private ApiRepository apiRepository;
	private static final String API="Api"; //Nombre de la clase Java, respetar Mayus.
	....
	
	@SuppressWarnings("unchecked")
	public <R extends JpaRepository<T, I>, T, I> R getJpaRepository(T versionable) {
		switch (versionable.getClass().getSimpleName()) {
		....
		case API:
			return (R) apiRepository;
		....
	}
	
	@SuppressWarnings("unchecked")
	public <S> S save(Versionable<S> versionable) {
		switch (versionable.getClass().getSimpleName()) {
		.....
		case API:
			return (S) apiRepository.save((Api) versionable);
		.....
	}

3. Consideraciones extra si la entidad no extiende de OPResource

Para el caso de entidades versionables que no extiendan de OPResource habrá dos casos:

  • La entidad tiene atributo user

En este caso tendremos que ir al repositorio de la entidad, tomemos como ejemplo DashboardUserAccess y DashboardUserAccessRepository, y asegurarnos de que existe el método findByUser, si no, lo creamos:

Code Block
public interface DashboardUserAccessRepository extends JpaRepository<DashboardUserAccess, String> {
...
List<DashboardUserAccess> findByUser(User user);

}

  • La entidad no tiene atributo user

En este caso iremos al repositorio de la entidad, y crearemos el método findByUser como un default tal como en el siguiente ejemplo:

Code Block
public interface DashboardConfRepository extends JpaRepository<DashboardConf, String> {
....
	default List<DashboardConf> findByUser(User user){
		return findAll();
	}
...
}

Esto es necesario para que funcionen ciertas funcionalidades para usuarios no administradores.