【发布时间】:2013-12-21 23:23:33
【问题描述】:
表 grpUsuario
@Id
@Basic(optional = false)
@NotNull
@Column(name = "grupo")
private Integer grupo;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 64)
@Column(name = "descripcion")
private String descripcion;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "secLevel")
private Collection<Menu> menuCollection;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "grupo", orphanRemoval = true)
private Collection<Usuario> usuarioCollection;ç
桌子上的乌苏里奥
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 64)
@Column(name = "IdUsuario")
private String idUsuario;
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 64)
@Column(name = "password")
private String password;
@Size(max = 16)
@Column(name = "nombres")
private String nombres;
@Size(max = 24)
@Column(name = "apellidos")
private String apellidos;
// @Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?", message="Correo electrónico no válido")//if the field contains email address consider using this annotation to enforce field validation
@Size(max = 64)
@Column(name = "email")
private String email;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idUsuario")
private Collection<Encuesta> encuestaCollection;
@JoinColumn(name = "grupo", referencedColumnName = "grupo" )
@ManyToOne(optional = false)
private Grpusuario grupo;
控制器
String cod = request.getParameter("cod");
Usuario usuario= new Usuario(cod);
boolean resultado = usuario_servicio.delete(usuario);
删除功能
public boolean delete(Usuario usuario){
Session session = HibernateUtil.openSession();
Transaction tx = null;
try {
tx = session.getTransaction();
tx.begin();
session.delete(usuario);
tx.commit();
} catch (Exception e) {
if (tx != null) {
tx.rollback();
}
e.printStackTrace();
} finally {
session.close();
}
return true;
}
这是我拥有的代码,但我没有删除记录。我尝试对具有关系的表使用相同的代码,如果它有效,我应该做更多的工作来删除子记录吗?
【问题讨论】:
-
尝试删除此实例时是否收到警告或异常?没试过,不过一般实体需要先加载再删除。
-
不显示 exepcion ,相反的结果是 true 并显示消息 Record Deleted succesfull。但记录存在。
-
假设
cod是您的 PK 时,用session.delete(session.get(Usuario.class, usuario.getIdUsuario()))替换删除会发生什么? -
谢谢,是的,PK 是
cod并将Session.delete(usuario)替换为session.delete (session.get (Usuario.class, usuario.getIdUsuario ()))并运行
标签: java hibernate netbeans-7 many-to-one cascading-deletes