score:1

Accepted answer

your crudcontroller is expecting a subclass of service with crudrepository,

public abstract class crudcontroller<m extends model, 
  s extends service<m, crudrepository<m,long>>> { ..

but you are giving it a subclass of service with subclass of crudrepository.

you can change the crudcontroller signature ...

/* takes any crudrepository */
public abstract class crudcontroller<m extends model, 
  s extends service<m, ? extends crudrepository<m,long>>> { ..

or

/* takes any crudrepository */
public abstract class crudcontroller<m extends model, 
  r extends crudrepository<m, long>, s extends service<m,r>> { ..

/* you'll have to be explicit in usercontroller with this signature */
public class usercontroller extends crudcontroller<user, userrepository, userservice>{

Related Query

More Query from same tag