After updating a named query using HQL to constrain on a Collection of objects determined at runtime, Hibernate began throwing "org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter" while apparently attempting to access the "id" property of an object in my model.
My named query looked something like this:
select p from Parent p where p.child in (:children)
and I was calling it like so:
Query query = session.getNamedQuery(queryName);query.setParameter("children", aCollectionOfChildren); query.list();
It took me a bit of trial and error to realize that Hibernate expected the Collection to be passed in using "query.setParameterList" instead of "query.setParameter". Changing my call to the following resolved the issue:
Query query = session.getNamedQuery(queryName);query.setParameterList("children", aCollectionOfChildren); query.list();
Certainly my mistake, but I sure would have appreciated a clearer error message.