Hibernate - Como remover deleção automática em relacionamento 1-n?

Tenho um relacionamento 1 - n, no qual um usuário possui um perfil e um perfil possui um set de usuários. Quando deleto um perfil, o hibernate deleta todos os usuários relacionados a ele. Gostaria que isso não fosse possível, emitindo uma mensagem de erro por exemplo. Tem como fazer isso? Não coloquei nenhum Cascade no mapeamento.

Obs: uso Hibernate Annotations com DB MySQL.

Opa geidivan tudo bom?

Posta aqui o relacionamento que vc está utilizando…

[]'s

remove o cascade all ou cascade delete

Não coloquei nenhum cascade. Tá aí o código.

package entity.pojo;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;

@Entity @Table(name="usuario", schema="siapso")
public class Usuario implements Serializable  {

   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)
   @Column(name="codigo_usuario", length=4)   
   private int codigo_usuario;
   
   @Column(name="nome", nullable=false, length=250)
   private String nome;
   @Column(name="login", nullable=false, length=30)
   private String login;
   @Column(name="telefone", length=10)
   private String telefone;
   @Column(name="email", length=250)
   private String email;   
   @Column(name="senha", nullable=false, length=8)
   private String senha;   
   
   @ManyToOne(fetch = FetchType.EAGER)   
   @JoinColumn(name="codigo_perfil",insertable=true,updatable=true)
   @Fetch(FetchMode.JOIN)
   private Perfil perfil;
      
   public Usuario() {}

   // getters e setters 
   //  ...

}

//-------------------------------------------------------------------
package entity.pojo;

import java.io.Serializable;
import java.util.Set;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
import javax.persistence.Column;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;

@Entity @Table(name="perfil", schema="siapso")
public class Perfil implements Serializable {
   
   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)   
   @Column(name="codigo_perfil", length=2, nullable=false)   
   int codigo_perfil;
   
   @Column(name="nome", nullable=false, length=250)
   String nome;
   @Column(name="descricao", length=250)
   String descricao;
   
   // Relacionamentos
   @OneToMany(mappedBy="perfil", fetch = FetchType.LAZY)
   @JoinColumn(name="codigo_perfil")
   private Set<Usuario> usuarios;
   
   public Perfil() {}

   // getters e setters 
   //  ...

}

Quando faço um session.delete(1, Perfil.class) , todos os usuários relacionados a esse perfil é deletado.

Isso mesmo, falou e disse.

Deleta esse @Fetch(FetchMode.JOIN) da Classe perfil. Assim o relacionamento ficará padrão.
O que é responsável por operações em cascata como o georgeesq disse é o cascade porem removendo isso dai acho que funcionará.