Native queries do not support collection extension nor named parameters.
you should write:
@NamedNativeQuery(name="WebGroup.DeleteIn", query="DELETE FROM WebGroup WHERE WebGroup.GROUP_ID IN (?,?,?,?)" Query query = getEm().createNamedQuery("WebGroup.DeleteIn"); for(int i = 0; i < 4; i++) query.setParameter(i + 1, groupToDeleteIDs.get(i)); query.executeUpdate();
but awful
on eclipselink + mysql this works:
@NamedNativeQuery(name="WebGroup.DeleteIn", query="DELETE FROM WebGroup WHERE WebGroup.GROUP_ID IN (?)" Query query = getEm().createNamedQuery("WebGroup.DeleteIn"); query.setParameter(1, StringUtils.join(groupToDeleteIDs, ","); query.executeUpdate();
however, this is not very nice ... but there is no other solution using a named query.
source share