Exclusão de rergistros

Olá galera.

Eu tenho uma tabela de produtos onde a mesma contém uma chave estrangeira de fornecedor. Abaixo está as propriedades da classe produto:

@Id
    @GeneratedValue(strategy= GenerationType.IDENTITY)
    private Integer id;
    @Column(name="nome", length=200)
    private String nome;
    @Column(name="quantidade")
    private int quantidade;
    @Column(name="precocompra")
    private double precocompra;
    @Column(name="precovenda")
    private double precovenda;
    @Column(name="precovarejo")
    private double precovarejo;
    @Column(name="precoatacado")
    private double precoatacado;
    @Column(name="precodespesa")
    private double precodespesa;
    @Column(name="margem")
    private double margem;
    @Column(name="minestoque")
    private int minestoque;
    @Column(name="maxestoque")
    private int maxestoque;
    @Column(name="descricao")
    private String descricao;
    @OneToOne(cascade=CascadeType.ALL, orphanRemoval = false)
    @JoinColumn(name="idFornecedor")
    private Fornecedor fornecedor;
    @OneToMany(mappedBy = "produto", fetch=FetchType.LAZY)
    private List<ItemVendaRapida> itemvendarapida;

O problema é que quando deleto um produto, o fornecedor tbm é excluido, só que isso não pode acontecer. Eu tentei com a anotação OnDelete e sem sucesso. O que pode estar de errado?

Alguma sugestão?

O problema é aqui: @OneToOne(cascade=CascadeType.ALL, orphanRemoval = false)

O que significa essa linha:
1 - cascade=CascadeType.ALL -> TUDO que acontecer com a minha entidade, aplique à essa entidade também. São essas ações: SAVE (PERSIST), UPDATE (MERGE), DELETE e outros.
2 - orphanRemoval = false -> false é o default. Quando estiver true, caso a sua entidade fique sem referência, ele remove para você do banco.

Para resolver isso, troque o CascadeType para outro que não seja o ALL.

troquei para:

@OneToOne(cascade=CascadeType.PERSIST, orphanRemoval = false) @JoinColumn(name="idFornecedor") private Fornecedor fornecedor;
dai deu certo.

Vlw.