Механизм cascade из hibernate не подходит для таких задач, он в любом случае будет выполнять отдельный запрос на каждую сущность.
Если СУБД поддерживает внешние ключи и каскадное удаление, можно воспользоваться этим механизмом. Hibernate позволяет описать это в DDL через аннотацию `@OnDelete`. Важно при этом убрать CascadeType.REMOVE (использовать ALL не получится, скорее всего будет достаточно PERSIST).
Клиентское приложение должно работать как внутри локальной сети, так и за её пределами, но при работе в локальной сети хотелось бы отдельно идентифицировать каждое устройство.
Вариант с заголовками не походит, потому что их должен передавать клиент, там изменений быть не должно.
Достаточно произвести действия, описанные в разделе Quick Setup Instructions