这是一个基本问题,但是我找不到很多信息。
用例如下:我使用CriteriaQuery进行了搜索以查找x记录。我在此方法中发起的最后一次调用以启动实际搜索如下:
getEntityManager().createQuery(query).setMaxResults(MAX_ROWS).getResultList())
因此,这意味着我要取回的记录将附加到entityManager。
想象一下,我将深度克隆那些实体,更改那些克隆实体中的一些值,然后尝试调用entityManager.merge(clonedEntity)。这样行吗? “合并”方法是否检查您实体中的“等于”方法以在数据库中查找相似的对象并更新这些对象,否则将无法正常工作,并且您需要更改附加到实体管理器的实体才能更新这些记录在数据库中?
感谢您的帮助
您需要更新由entitymanager控制的对象。然后,您不需要合并。克隆的实体是分离的,因此您需要对其进行持久化,它将代表一个新对象,因此将在数据库中提供一个新条目。