Why not using the @Query
annotation?
@Query("select p.id from #{#entityName} p")
List<Long> getAllIds();
The only disadvantage I see is when the attribute id
changes, but since this is a very common name and unlikely to change (id = primary key), this should be ok.