I also performed similar query using the entity manager like:
Code:
uery query = em.createQuery("select from " + User.class.getName() + " user where user.username like ?1");
query.setParameter(1, q + "%");
List<User> users = query.getResultList();
and this works perfectly.
The DataNucleus logging displays:
Code:
09:20:17,867 DEBUG [DataNucleus.Query] - JPQL Single-String with "select from nl.valid.minerva.domain.User user where user.username like ?1"
09:20:17,868 DEBUG [DataNucleus.Query] - Query "SELECT FROM nl.valid.minerva.domain.User user WHERE user.username like ?1" of language "JPQL" has been run before so reusing existing generic compilation
09:20:17,869 DEBUG [DataNucleus.Query] - JPQL Query : Executing "SELECT FROM nl.valid.minerva.domain.User user WHERE user.username like ?1" ...
09:20:17,869 DEBUG [DataNucleus.Query] - Query compiled as : Kind=nl.valid.minerva.domain.User Filter : username>=ad AND username<ae
09:20:17,870 DEBUG [DataNucleus.Datastore.Native] - Executing query in datastore for SELECT FROM nl.valid.minerva.domain.User user WHERE user.username like ?1
When I check the logging for the UserRepository Page<User> findByUsernameStartingWith(String username, Pageable pageable) method I see:
Code:
09:24:10,475 DEBUG [DataNucleus.Query] - JPQL Single-String with "SELECT DN_THIS FROM nl.valid.minerva.domain.User DN_THIS WHERE DN_THIS.username LIKE ?-1ORDER BY DN_THIS.username ASC"
09:24:10,477 DEBUG [DataNucleus.Query] - QueryCompilation:
[from:ClassExpression(alias=DN_THIS)]
[filter:InvokeExpression{[PrimaryExpression{DN_THIS.username}].matches(ParameterExpression{null})}]
[ordering:OrderExpression{PrimaryExpression{DN_THIS.username} ascending}]
[symbols: null type=unknown, DN_THIS type=nl.valid.minerva.domain.User]
09:24:10,482 DEBUG [DataNucleus.Query] - JPQL Query : Compiling "SELECT FROM nl.valid.minerva.domain.User DN_THIS WHERE DN_THIS.username LIKE ?-1ORDER BY DN_THIS.username ASC"
Note the - (minus) between the ? and the positional parameter index.
I can imagine this causes the exception "Numbered parameter syntax starting ? but isnt followed by numeric", but I'm still not use what the origin is.