Uso de genéricos en los repositorios de Spring Data JPA

Tengo varios tipos de objetos simples que deben persistir en una base de datos. Estoy utilizando Spring JPA para gestionar esta persistencia. Para cada tipo de objeto necesito construir lo siguiente:

import org.springframework.data.jpa.repository.JpaRepository;

public interface FacilityRepository extends JpaRepository<Facility, Long> {
}


public interface FacilityService {
    public Facility create(Facility facility);
}

@Service
public class FacilityServiceImpl implements FacilityService {

    @Resource
    private FacilityRepository countryRepository;

    @Transactional
    public Facility create(Facility facility) {
        Facility created = facility;
        return facilityRepository.save(created);
    }
}

Se me ocurrió que podría ser posible reemplazar las múltiples clases para cada tipo de objeto con tres clases basadas en genéricos, ahorrando así una gran cantidad de codificación repetitiva. No estoy exactamente seguro de cómo hacerlo y, de hecho, si es una buena idea.

Respuestas a la pregunta(1)

Su respuesta a la pregunta