Repositorios JPA de datos de Spring: la cláusula IN en la consulta derivada no funciona

Tengo un repository que se ve así:

public interface UserRepository extends JpaRepository { User findByEmailIgnoreCase(String email); @Query("select u from User u where u.id in (:ids)") Set getByIdInSet(@Param("ids") Set ids); } 

Cuando llamo a getByIdInSet obtengo el siguiente error:

 Caused by: java.lang.IllegalArgumentException: You have attempted to set a value of type class org.eclipse.persistence.indirection.IndirectSet for parameter ids with expected type of class java.lang.Long from query string select u from User u where u.id in (:ids). at org.eclipse.persistence.internal.jpa.QueryImpl.setParameterInternal(QueryImpl.java:933) at org.eclipse.persistence.internal.jpa.EJBQueryImpl.setParameter(EJBQueryImpl.java:593) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) 

Aparentemente, no sé qué significa porque he intentado cambiar todo tipo de tipos de datos y sigo teniendo el mismo error. El conjunto de ID que estoy pasando contiene solo un ID. Por favor, apúntame en la dirección correcta.

Pruébalo sin los soportes.

 @Query("select u from User u where u.id in :ids") 

La última versión de Spring Data JPA admite la palabra clave IN que se puede usar para crear la consulta de la siguiente manera:

 Set findByIdIn(Set ids);