What is the best way to delete all rows in a table in Hibernate?
If I iterate over a collection and call session.delete() it’s not performing to my knowledge.
If I use another option session.createQuery("delete ...") it doesn’t affect persistence context.
When I should use these methods if there is no better variant?
DELETE FROM enityNameThe problem lies in the fact that hibernate handles cascades internally, rather than leaving this to the database. So sending a query won’t trigger the internal cascades, hence you will have inconsistencies / orphans.
If performance is so crucial (after all it’s not everyday that one truncates a table), then you can have more than 1 HQL delete for each cascade – i.e. handling the cascades manually.