Current user-supplied query parameter values are checked strongly against the type they bind to.
For example, a query
Query q = "select p from Person p where p.gender=:g";
will fail if Person.gender is of enum Gender
The correct usage is q.setParameter("g", Gender.MALE);
We are relaxing this from the standpoint of a language-neutral client that does not have access to Gender enum type.