Thinking about this some more, I think this happens primarily because the spring data jpa query method is defined on a generic interface and the type information is then lost at runtime, hence the Object typed param.