JPA托管实体:被搜索的实体仍然是托管实体

时间:2016-01-25 10:08:59

标签: java jpa entity managed

如果我使用Query.getSingleResult的实体甚至找到了一个托管实体。 我可以对它进行更改,它不能是entityManager.merge或persist()调用。

EntityManager em = ...
TypedQuery<User> query = em.createQuery("SELECT u FROM User u WHERE u.email = :userEmail");
query.setParameter("userEmail", "user@test.de");
User user = query.getSingleResult();
// change the user name and email
user.setName("Test1");
user.setEmail("test1@test.de");
// that all???

1 个答案:

答案 0 :(得分:2)

您已经通过EntityManager获取了它并且您尚未分离它,所以是的,它仍然是一个托管实体,您对其所做的任何更改都将通过到数据库。