我正在使用hibernate的entityManager来尝试更新对象。我的代码看起来像:
public A updateA(Aid,A)
a = update(Aid, A);
aNew = find(A.class,Aid);
if(aNew.equals(a)){
System.out.println("Expected Behaviour");
}
}
public <E> E update(String id,E e) {
E en=(E) find(e.getClass(),id);
if(en!=null){
e = em.merge(e);
em.flush();
}
return e;
}
public <E> E find(Class<E> clazz, String id) {
return em.find(clazz, id);
}
当我调用方法updateA
时,它会打印Expected Behaviour
。但是,当我在调用find(A.class,Aid)
后尝试调用updateA(Aid,A)
时,返回的对象不是更新的对象,而是较旧的对象。
有人能让我知道我做错了吗?