如果我使用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???
答案 0 :(得分:2)
您已经通过EntityManager
获取了它并且您尚未分离它,所以是的,它仍然是一个托管实体,您对其所做的任何更改都将通过到数据库。