La mejor manera de manejar la herencia de entidades en Spring Data JPA

Tengo tresEntidad JPA clasesA, B yC con la siguiente jerarquía:

    A
    |
+---+---+
|       |
C       B

Es decir:

@Entity
@Inheritance
public abstract class A { /* ... */ }

@Entity
public class B extends A { /* ... */ }

@Entity
public class C extends A { /* ... */ }

UtilizandoSpring Data JPA, cual es la mejor manera de escribirrepositorios clases para tales entidades?

Sé que puedo escribir esto:

public interface ARespository extends CrudRepository<A, Long> { }

public interface BRespository extends CrudRepository<B, Long> { }

public interface CRespository extends CrudRepository<C, Long> { }

pero si en la claseA hay un camponame y agrego este método en elARepository:

public A findByName(String name);

Tengo que escribir este método también en los otros dos repositorios, y esto es un poco molesto. ¿Hay una mejor manera de manejar tal situación?

Otro punto que me gustaría tener es queARespository debe ser un repositorio de solo lectura (es decir, extender elRepository clase) mientras que los otros dos repositorios deben exponer todas las operaciones CRUD.

Déjame saber posibles soluciones.

Respuestas a la pregunta(1)

Su respuesta a la pregunta