Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA托管实体:搜索的实体仍然是托管实体吗_Java_Jpa_Entity_Managed - Fatal编程技术网

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

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(); /

如果我使用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();
//更改用户名和电子邮件地址
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???