Java JPA托管实体:搜索的实体仍然是托管实体吗
如果我使用Query.getSingleResult找到的实体甚至是托管实体。 我可以对它进行更改,但它不能调用entityManager.merge或persist()Java JPA托管实体:搜索的实体仍然是托管实体吗,java,jpa,entity,managed,Java,Jpa,Entity,Managed,如果我使用Query.getSingleResult找到的实体甚至是托管实体。 我可以对它进行更改,但它不能调用entityManager.merge或persist() EntityManager em=。。。 TypedQuery query=em.createQuery(“从用户u中选择u,其中u.email=:userEmail”); query.setParameter(“userEmail”user@test.de"); User=query.getSingleResult(); /
EntityManager em=。。。
TypedQuery query=em.createQuery(“从用户u中选择u,其中u.email=:userEmail”);
query.setParameter(“userEmail”user@test.de");
User=query.getSingleResult();
//更改用户名和电子邮件地址
user.setName(“Test1”);
user.setEmail(“test1@test.de");
//就这些???
您已经通过EntityManager获取了它,但是您没有分离它,所以是的,它仍然是一个托管实体,您对它所做的任何更改都将写入数据库。您已经通过EntityManager获取了它,但是您没有分离它,所以是的,它仍然是一个托管实体,您对它所做的任何更改都将写入数据库。这是我的荣幸Mulder3。这是我的荣幸Mulder3。
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???