Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 使用注释休眠一对多删除_Hibernate_One To Many_Many To One - Fatal编程技术网

Hibernate 使用注释休眠一对多删除

Hibernate 使用注释休眠一对多删除,hibernate,one-to-many,many-to-one,Hibernate,One To Many,Many To One,我在删除hibernate上的OneToMany和ManyToOne时遇到问题。我想问题是我有两个单亲孩子的父母。我就是这样得到的 Persona Rol Pais id id id name name name Pais Rol 如您所见,人物(persona)与角色(rol)和国家(pai)相关。 我的实体是这样的: 人 public class Persona implement

我在删除hibernate上的OneToMany和ManyToOne时遇到问题。我想问题是我有两个单亲孩子的父母。我就是这样得到的

Persona        Rol        Pais
 id             id         id
 name           name       name
 Pais
 Rol
如您所见,人物(persona)与角色(rol)和国家(pai)相关。 我的实体是这样的:

public class Persona  implements java.io.Serializable {
  @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="Pais", nullable=false)
    public Pais getPais() {
       return this.pais;
    }

@ManyToOne(fetch=FetchType.LAZY)
   @JoinColumn(name="Rol", nullable=false)
   public Rol getRol() {
      return this.rol;
   }
Pais(国家)


希望你能帮助我,在hibernate中删除这个东西真让我抓狂。

如果你只是想删除这个人。你可以删除它

session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Persona p = (Persona)session.load(Persona.class, idPersona);
session.delete(p);
session.getTransaction().commit();
session.close();

其他关系都没关系吗??父母我的意思是??不,想一想:你所有的外键都在个人桌上。当您只删除人员时,它会删除同一行中的角色和国家/地区外键。就是这样。这样就行了……问题不在于人际关系或诸如此类的事情。问题是,就像是一个网页,我使用的是java primefaces,commandbutton似乎没有调用bean上的方法。我有两个命令按钮,只有一个运行良好(添加一个人的按钮),一个删除一个人的按钮,只是不调用该方法。如果你对这件事有什么想法,那将非常有帮助。警察局。我也有一个p:dataTable,似乎这就是问题所在。谢谢你的密码,这对我很有帮助。
public class Rol  implements java.io.Serializable {
  private Set<Persona> personas = new HashSet<Persona>(0);

  @OneToMany(fetch=FetchType.LAZY, mappedBy="rol", cascade=CascadeType.ALL,orphanRemoval=true)
    public Set<Persona> getPersonas() {
      return this.personas;
    }
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Persona p = (Persona)session.load(Persona.class, idPersona);
Pais pais = (Pais)session.load(Pais.class, p.getPais().getId()); //try to p.getPais();
rol rol = (Rol)session.load(Rol.class,p.getRol().getId()); //try to p.getRol();
pais.getPersonas().remove(p);
rol.getPersonas().remove(p);
p.setPais(null);
p.setRol(null);
session.update(pais);
session.update(rol);
session.delete(p);
session.getTransaction().commit();
session.close();
session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
Persona p = (Persona)session.load(Persona.class, idPersona);
session.delete(p);
session.getTransaction().commit();
session.close();