It would be difficult to comment without seeing the domain objects for both Car and Brands. But I don't understand why you have to explicitly the flush on deletion of cars. During transaction close, Hibernate will issue flush and commit.