Роман Нагаев
1.создаёшь несколько desease
2. создаёшь несколько drug с desease в качестве потомка
3. один раз делаешь flush, он не для сущности а для всего кеша транзакции(если я правильно помню)
4. делаешь рефреш сущностей desease
возможно flush ещё понадобится после сохранения desease, перед drug, чтобы сгенерились id для desease
важный момент, констрейнты проверяются на этапе коммита транзакции, так что уже после всех флашей, ты можешь словить ошибку нарушения целостности при коммите транзакции, помни об этом
Кстати. При сохранения массива с любой стороны даже не нужно было делать дополнительных манипуляций с базой. Спринг сам подвязал значения и пораспихивал по всем связанным обьектам. Так же с удалением и изменением