Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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中从entitymanager获取旧实体?_Java_Jpa - Fatal编程技术网

Java 如何在JPA中从entitymanager获取旧实体?

Java 如何在JPA中从entitymanager获取旧实体?,java,jpa,Java,Jpa,如何从JPA中的entitymanager获取旧实体 代码: Address address=em.find(Address.class,1); System.out.println("Name of Address: "+address.getAddressName); // China address.setAddressName("Russia"); Address address1=em.find(Address.class,address.getAddres

如何从JPA中的
entitymanager
获取旧实体

代码: Address address=em.find(Address.class,1); System.out.println("Name of Address: "+address.getAddressName); // China address.setAddressName("Russia"); Address address1=em.find(Address.class,address.getAddressId()); System.out.println("Name of Address: "+address1.getAddressName); //????????? Address Address=em.find(Address.class,1); System.out.println(“地址名称:“+Address.getAddressName”);//中国 地址:setAddressName(“俄罗斯”); AddressAddress1=em.find(Address.class,Address.getAddressId()); System.out.println(“地址名称:+address1.getAddressName”);/?????????


我如何才能得到“中国”的答案?

使用不同的实体管理器。任何特定的EntityManager都只会返回具有特定标识的单个对象(缓存在一级缓存中)

DataNucleus是正确的,但我建议使用带有查询提示的查询来绕过缓存,而不是使用EntityManager的第二个实例

请参阅em.refresh(地址1)

当它从数据库(“中国”)中刷新对象状态,覆盖(“俄罗斯”)对对象所做的更改时,应能正常工作

变量address和address1引用同一个对象,因此address.getAddressName()和address1.getAddressName()都返回“China”

数据库仍然具有旧值,直到
em.merge(地址);
em.flush()被调用