Каскад JPA = REMOVE и @OnDelete Hibernate используются вместе?

Я унаследовал базу кода, в которой почти все отношения имеют следующие аннотации:

@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 генерировать каскад на основе БД в любом случае?

9
задан Community 23 May 2017 в 12:00
поделиться