I have a requirement to delete an entity, let's say, main_entity and this entity has many dependent entities. So, I need to perform deletion in this manner:
delete from dependent_entity_1 where main_entity_id IN :entity_ids;
delete from dependent_entity_2 where main_entity_id IN :entity_ids;
delete from dependent_entity_3 where main_entity_id IN :entity_ids;
delete from dependent_entity_4 where main_entity_id IN :entity_ids;
delete from main_entity where id IN ::entity_ids;
Since, there are a lot of dependent entities, I want to put the deletion query in a separate file instead of hard-coding inside the repository class.
I tried using named query as mentioned here: How to refer long query, written in external file, in Spring data jpa @Query
The properties file look like this:
MainEntity.deleteEntities=delete from dependent_entity_1 where main_entity_id IN :entity_id;\
delete from dependent_entity_2 where main_entity_id IN :entity_id;\
delete from dependent_entity_3 where main_entity_id IN :entity_id;\
delete from dependent_entity_4 where main_entity_id IN :entity_id;\
delete from main_entity where id IN ::entity_id;\
It is working for a single query but for multiple queries it is giving an exception: Named parameter not bound :entity_ids;
So, it might not support executing multiple queries.
Is there any way to do this or am I doing anything incorrectly here?