是否 删除 (对象实体)的方法 EntityManager的 工作只对这些对象从得到 的发现 ()方法?
我有以下代码片段:
public void deletePerson() { EntityManager em = getEntityManager(); Person p = new Person("x", "y", 200); em.remove(p); }
但这不是从数据库中删除特定条目。
当我尝试以下内容时:
public void deletePerson() { EntityManager em = getEntityManager(); Person p = em.find(Person.class, 200); em.remove(p); }
一切正常。
引用ObjectDB的有关删除JPA实体对象的手册:
为了从数据库中删除对象,必须首先检索该对象(无论采用哪种方式),然后在活动事务中,可以使用remove方法将其删除。 如果参数不是实体类的实例或者它是一个分离的实体,则remove会抛出IllegalArgumentException。
为了从数据库中删除对象,必须首先检索该对象(无论采用哪种方式),然后在活动事务中,可以使用remove方法将其删除。
如果参数不是实体类的实例或者它是一个分离的实体,则remove会抛出IllegalArgumentException。
使用new运算符创建对象时,它成为一个分离的实体,如果要删除它,则需要保留它。
new
检索实体时,您正在检索持久性实体。