当我尝试删除实体时,必须管理实体以调用remove

Iva*_*ulo 4 java jpa jpql

我有这个方法来删除列表中选择的实体.但是当被调用时会产生这个错误,我看不出原因.

java.lang.IllegalArgumentException:必须管理实体以调用remove:HP Envy 15,尝试合并分离并再次尝试删除.

public void delete(Stock stock){
        EntityManager em = ConnectionFactory.createEntityManager();
        em.getTransaction().begin();
        em.detach(stock);
        em.remove(stock);
        em.getTransaction().commit();        
        em.close();
    }
Run Code Online (Sandbox Code Playgroud)

我已经阅读了其他相关帖子

必须管理实体以调用删除

IllegalArgumentException:必须管理实体以调用remove

Rob*_*sen 13

如果未附加实体,则无法删除该实体.如果实体仍然附加,您可以按原样删除它.如果不再附加,您可以使用merge以下命令重新附加它:

if (!em.contains(stock)) {
    stock = em.merge(stock);
}

em.remove(stock);
Run Code Online (Sandbox Code Playgroud)