From the SQL log, the order looks ok:
12:05:44,184 DEBUG SQL:92 - delete from Foo where id=? 12:05:44,185 TRACE BasicBinder:65 - binding parameter [1] as [BIGINT] - [1] 12:05:44,187 DEBUG SQL:92 - delete from Bar where id=? 12:05:44,187 TRACE BasicBinder:65 - binding parameter [1] as [BIGINT] - [2] 12:05:44,193 WARN SqlExceptionHelper:129 - SQL Error: 1451, SQLState: 23000 12:05:44,193 ERROR SqlExceptionHelper:131 - Cannot delete or update a parent row: a foreign key constraint fails (`hibernate_orm_test`.`foo`, CONSTRAINT `FKbq25qcfdehwj8gsqcds7psuh0` FOREIGN KEY (`BAR_ID`) REFERENCES `bar` (`id`))
Foo is deleted first, the Bar. But, then we get the FK exception as if Foo was not deleted.