Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 我在JPA方面有问题_Java_Jpa_Transactions_Persistence - Fatal编程技术网

Java 我在JPA方面有问题

Java 我在JPA方面有问题,java,jpa,transactions,persistence,Java,Jpa,Transactions,Persistence,我有两张桌子 议程 @Entity @Table (name = "agenda") public class Agenda { @Id @GeneratedValue private int idAgenda; @OneToMany(orphanRemoval=true,cascade = CascadeType.REMOVE) private List<Consulta> consultas; } 当我运行java时,它创建了第三个

我有两张桌子

议程

@Entity
@Table (name = "agenda")

public class Agenda {

    @Id
    @GeneratedValue
    private int idAgenda;

    @OneToMany(orphanRemoval=true,cascade = CascadeType.REMOVE)
    private List<Consulta> consultas;
}
当我运行java时,它创建了第三个表:agenda consulta。当我尝试删除“consulta”表上的consulta时,我执行以下操作:

    em.getTransaction().begin();
    em.remove(consulta);
    em.getTransaction().commit();

但有错误导致外国。如何执行此操作?

您试图删除一个仍被议程引用的顾问。所以外键约束禁止您这样做,因为它会使数据库不一致

通过查找包含该顾问的议程,并从议程的顾问列表中删除该顾问,确保在删除之前删除对该顾问的引用

    em.getTransaction().begin();
    em.remove(consulta);
    em.getTransaction().commit();