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
jpa删除许多链接_Jpa_Many To Many - Fatal编程技术网

jpa删除许多链接

jpa删除许多链接,jpa,many-to-many,Jpa,Many To Many,我有一个事件表,我想把它们分组。这很简单 // this cascade group still removes the join table but not the products table @ManyToMany(targetEntity=Product.class,fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST, CascadeType.REFRESH,CascadeType.MERGE}) @JoinTable(

我有一个事件表,我想把它们分组。这很简单

// this cascade group still removes the join table but not the products table @ManyToMany(targetEntity=Product.class,fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST, CascadeType.REFRESH,CascadeType.MERGE}) @JoinTable(name = "lcw_group_product", joinColumns = { @JoinColumn(name = "group_id", referencedColumnName="id") }, inverseJoinColumns = { @JoinColumn(name = "product_id", referencedColumnName="id") }) @ElementForeignKey(updateAction = ForeignKeyAction.CASCADE) public Set getProducts() { return products; } //此级联组仍然删除联接表,但不删除产品表 @ManyToMany(targetEntity=Product.class,fetch=FetchType.EAGER,cascade= {CascadeType.PERSIST,CascadeType.REFRESH,CascadeType.MERGE}) @JoinTable(name=“lcw\U group\U product”, joinColumns={@JoinColumn(name=“group_id”,referencedColumnName=“id”)}, inverseJoinColumns={@JoinColumn(name=“product\u id”,referencedColumnName=“id”)} @ElementForeignKey(updateAction=ForeignKeyAction.CASCADE) 公共集getProducts(){ 退货产品; }
当我想完全删除组时,这些注释会起作用,但当我想更新组以删除某些链接时,事件仍保留在那里,我找不到方法来执行此操作,我目前正在执行链接表的delete语句,但这并没有反映在父实体中,只是为了澄清ElementForeignKey是OpenJPA注释,而不是JPA注释。
不幸的是,到目前为止,ManyToMany注释没有孤儿删除属性。

您对链接表执行delete语句是什么意思?您是在执行本机查询还是在调用em.remove(产品)?(很抱歉,我没有看到您的评论)我这样做是为了删除子行:getEntityManager().remove(entity);还是没有答案。。。达格·布拉米