0

好吧,我有一张名为“Orcamento”的桌子,里面有很多“ItemOrcamento”。我还有一张名为“Consulta”的桌子,里面也有很多“ItemOrcamento”。

“Consulta”表可以有很多“ItemOrcamento”,一个“ItemOrcamento”可以在多个“Consulta”中。

了解场景后,我将解释我的问题: 在 JPA 中,我做了以下关系:

 @ManyToMany(fetch = javax.persistence.FetchType.LAZY)   
    @JoinTable(name = "item_consulta", joinColumns = { @JoinColumn(name = "id_consulta") }, inverseJoinColumns = { @JoinColumn(name = "id_item_orcamento") })   
    private Set<ItemOrcamento> itens;   

当我用很多“ItemOrcamento”创建一个新的“Consulta”时,这些行通常插入到表“item_consulta”中。想象一下这样的事情:

 consulta.addItem(item1);
 consulta.addItem(item2);

但是现在我想将 item1 替换为 item3,所以我这样做了:

 consulta.addItem(item3);
 consulta.addItem(item2);

在我看来,Hibernate(JPA)必须删除孤立的“item1”并添加“item3”,但它只是添加“item3”并且“item1”继续在数据库中。

我该如何解决?

编辑 1

我的关系是单向的,在“ItemOrcamento”中我不想要一个 Set,因为我不需要,所以在 ItemOrcamento 中我没有任何引用 joinTable“item_consulta”的 @ManyToMany 注释

4

0 回答 0