Comment supprimer toutes les lignes enfants lorsque le parent est supprimé de l'utilisation d'Hibernate?

J'ai 2 tables.

//Accounts
@OneToMany(mappedBy="accounts", cascade=CascadeType.ALL)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
private Set<Mails> mails;

//Mails
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="user_id" , referencedColumnName="id", insertable=false, updatable=false)
private Accounts accounts;

Comment puis-je organiser la suppression de toutes les lignes enfants lorsque les parents ligne seront supprimés? J'ai essayé de mettre CascadeType.DELETE_ORPHAN pour la Accounts table, mais avec qui je ne peux pas supprimer des lignes parent si une ligne enfant existe.

  • Pouvez-vous montrer le show create table MySQL de sortie pour les deux tableaux?
  • pastebin.com/N4y0LBmY
  • La syntaxe SQL est correcte et est en accord avec ma réponse, cependant je ne vois pas le ON DELETE CASCADE dans la définition de clé étrangère qui est explicitement requis par le moteur InnoDB sur la table afin de permettre à automatique enfant suppressions.