Я унаследовал базу кода, в которой почти все отношения имеют следующие аннотации:
@OneToMany(fetch = FetchType.LAZY, cascade = { CascadeType.REMOVE }, mappedBy = "someThing")
@OnDelete(action = OnDeleteAction.CASCADE)
Теперь мне трудно понять, что @OnDelete
делает в первую очередь. Hibernate: OnDelete vs cascade=CascadeType.REMOVE интересен, но, к сожалению, не содержит ответов, а JavaDoc для @OnDelete
особенно бесполезен.
Из других вопросов следует, что аннотация OnDelete каким-то образом позволяет БД выполнять каскадирование, а директива cascading на @OneToMany
позволяет ORM делать это, но какова цель их совместного использования?
И действительно ли директива cascade на @OneToMany
не позволяет реализации ORM генерировать каскад на основе БД в любом случае?