Cascade em Update e Delete em Classe Filha Com JPA

Pessoa, boa tarde.

Estou tentando realizar uma Cascade Update e Cascade Delete, em uma classe Herança com JPA. Mas infelizmente eu não estou conseguindo gerar este mesmo.

Segue o devido código da classe Pai:

Classe Pai


package comunicacao.banco.de.dados.model;

import java.io.Serializable;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ForeignKey;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import lombok.Data;

@Inheritance(strategy = InheritanceType.JOINED)
@Data
@Table(name = "Pessoa")
@Entity
public abstract class Pessoa implements Serializable {

    @Id
    @Column(name = "idPessoa", updatable = true, nullable = false, unique = true)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int idPessoa;

    @Column(name = "nomePessoa", nullable = true)
    private String nomePessoa;

    @Column(name = "imagemPessoa", nullable = true)
    private byte[] imagemPessoa;

    @Column(name = "emailPessoa", nullable = true)
    private String emailPessoa;

    @Column(name = "senhaPessoa", nullable = true)
    private String senhaPessoa;

    @Column(name = "fonePessoa", nullable = true)
    private String fonePessoa;

    @Column(name = "celularPessoa", nullable = true)
    private String celularPessoa;

    @Column(name = "dataCadastroPessoa", nullable = true)
    @Temporal(value = TemporalType.TIMESTAMP)
    private Date dataCadastroPessoa;

    @OneToOne
    @JoinColumn(name = "idClinica",
            foreignKey = @ForeignKey(name = "idClinica",
                    foreignKeyDefinition = "FOREIGN KEY(idClinica) REFERENCES clinica(idClinica) ON UPDATE CASCADE ON DELETE CASCADE"),
            nullable = false)
    private Clinica clinica;

    @OneToOne
    @JoinColumn(name = "idCargo",
            foreignKey = @ForeignKey(name = "idCargo",
                    foreignKeyDefinition = "FOREIGN KEY(idCargo) REFERENCES cargo(idCargo) ON UPDATE CASCADE ON DELETE CASCADE"),
            nullable = false)
    private Cargo cargo;
}
------------------------
> Classe Filha
------------------------
package comunicacao.banco.de.dados.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ForeignKey;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;

import lombok.Data;

@Entity
//@OnDelete(action = OnDeleteAction.CASCADE)
@Table(name = "Profissional")
@PrimaryKeyJoinColumn(name = "idProfissional", foreignKey = @ForeignKey(name = "idProfissional",
        foreignKeyDefinition = "FOREIGN KEY(idProfissional) REFERENCES pessoa(idPessoa) ON UPDATE CASCADE ON DELETE CASCADE"))
@Data
public class Profissional extends Pessoa implements Serializable {

    @Column(name = "conselhoProfissional", nullable = true)
    private String conselhoProfissional;

    @OneToOne
    @JoinColumn(name = "idEspecialidade", foreignKey = @ForeignKey(name = "idEspecialidade"), nullable = true)
    private Especialidade especialidade;
}

E como fica na base:

-- Table: profissional

-- DROP TABLE profissional;

CREATE TABLE profissional
(
  conselhoprofissional character varying(255),
  idprofissional integer NOT NULL,
  idespecialidade integer,
  CONSTRAINT profissional_pkey PRIMARY KEY (idprofissional),
  CONSTRAINT idespecialidade FOREIGN KEY (idespecialidade)
      REFERENCES especialidade (idespecialidade) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION,
  CONSTRAINT idprofissional FOREIGN KEY (idprofissional)
      REFERENCES pessoa (idpessoa) MATCH SIMPLE
      ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
  OIDS=FALSE
);
ALTER TABLE profissional
  OWNER TO postgres;

Será o ideal:

  CONSTRAINT idprofissional FOREIGN KEY (idprofissional)
      REFERENCES pessoa (idpessoa) MATCH SIMPLE
      ON UPDATE CASCADE ON DELETE CASCADE