Java: ¿Cómo anular este método genérico?

public <S extends T> List<S> save(Iterable<S> entities) {
        //...
}

Si utilizo el siguiente método para anular

@Override
public List<MyType> save(Iterable<MyType> structures) {
    List<MyType> result = new ArrayList<>();
    //...
    return result;
}

Me sale el siguiente error:

method does not override or implement a method from a supertype

name clash: save(Iterable<MyType>) in MyTypeRepositoryImpl and <S>save(Iterable<S>) in SimpleJpaRepository have the same erasure, yet neither overrides the other
  where S,T are type-variables:
    S extends T declared in method <S>save(Iterable<S>)
    T extends Object declared in class SimpleJpaRepository

¿Como puedo resolver esto? No necesito que el método sea genérico y, de hecho, no debería serlo. Lo que quiero decir es que

@Override
public <S extends MyType> List<S> save(Iterable<S> structures) {
    List<S> result = new ArrayList<>();
    //...
    return result;
}

No funcionará ya que el método puede crear un nuevo Objeto de MiTipo que no es "compatible" con la Lista.

¿Cómo puedo hacer que esto funcione?

EDITAR:

Para aclaraciones. Estoy intentando anular los diferentes métodos save () de los datos de Spring SimpleJpaRepository (que está ampliado por QuerydslJpaRepository)

Definiciones de clase:

public class MyTypeRepositoryImpl
    extends QueryDslJpaRepository<MyType, Long>
    implements MyTypeRepository

@NoRepositoryBean
public interface MyTypeRepository
    extends JpaRepository<MyType, Long>,
    QueryDslPredicateExecutor<MyType> 

Y esto (de Spring Data)

public class QueryDslJpaRepository<T, ID extends Serializable> 
extends SimpleJpaRepository<T, ID> 
implements QueryDslPredicateExecutor<T>

EDIT 2:

El método llama a guardar (entidad MyType) para cada elemento y ese método contiene la siguiente lógica:

entidad tiene un campo que es únicoobtener el valor de los campos y verificar si la entidad con ese valor ya existeSi es así, use esa entidad (llamada a entityManager.merge) -> no funciona devuelve MyType no SSi no crea uno nuevo -> aquí se crea un nuevo objeto. No funciona con tipo genérico.

Para 4. Simplemente puedo establecer id = null y usar el objeto pasado. Eso no funciona para 3.

Así que estoy muy sorprendido de por qué este método tiene esta firma. Lo hace inutilizable para mí y no entiendo por qué guardaría una subclase de T usando Ts DAO. Los métodos de guardar son los únicos con. Todos los demás solo usan T. Puedo lanzar a S para hacerlo compilar, pero eso también parece feo ... ya que cualquier otro tipo que no sea T daría lugar a una excepción.

Respuestas a la pregunta(5)

Su respuesta a la pregunta