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
Java Hibernate消除多对多关系上的记录和传播_Java_Hibernate - Fatal编程技术网

Java Hibernate消除多对多关系上的记录和传播

Java Hibernate消除多对多关系上的记录和传播,java,hibernate,Java,Hibernate,我有两个相连的类 病人: ... @Entity @Table(schema="public",name="patient") public class Patient{ .. @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "patient_id") public Integer getId() { return Id; } public void

我有两个相连的类

病人:

...
@Entity
@Table(schema="public",name="patient")  
public class Patient{
..
@Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "patient_id")
    public Integer getId() {
        return Id;
    }
    public void setId(Integer id) {
        Id = id;
    }

@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) 
    @JoinTable(name = "patient_examination", catalog = "ALTAdb", joinColumns = { 
    @JoinColumn(name = "patient_id", nullable = false, updatable = false) }, 
    inverseJoinColumns = { @JoinColumn(name = "examination_id",nullable = false, updatable = false) })
    public Set<Examination> getExaminations() {
        return examinations;
    }
    public void setExaminations(Set<Examination> examinations) {
        this.examinations = examinations;
    }
...
我不知道如何修理它


我还试图进行查询以直接访问患者检查,但我不知道它的工作方法

请尝试使用CascadeType@ManyToMany。删除它将尽我所知工作

删除之前,请尝试清除患者的检查
...
@Entity
@Table(schema="public",name="examination")  
public class Examination{
..
@Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "examination_id")
    public Integer getId() {
        return Id;
    }
    public void setId(Integer id) {
        Id = id;
    }
    @ManyToMany(fetch = FetchType.EAGER, mappedBy = "examinations") 
    public Set<Patient> getPatients() {
        return patients;
    }
    public void setPatients(Set<Patient> patients) {
        this.patients = patients;
    }
...
public boolean deleteExamination(int ExaminationId){
    boolean deleted=false;
    Session session=factory.getCurrentSession();  
    session.beginTransaction(); 
    Query query =session.createQuery("select m from "+ Examination.class.getName() +" m");  
    List<Examination> examinations= query.getResultList();
    for(Examination e: examinations){
        if(e.getId()==ExaminationId){
            session.delete(e);
            deleted=true;
            break;
        }
    }
    session.getTransaction().commit(); 
    return deleted;
}
"Examination" violates the external key constraint "fkexas9b9fwxn0t37wl60a4jcd3" on the table "patient_examination"
  Detail: The key (examination_id) = (4) is still referenced by the table "patient_examination"