Hibernate在新事务中返回旧对象

时间:2015-08-31 10:22:16

标签: java hibernate

我正在使用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)时,返回的对象不是更新的对象,而是较旧的对象。

有人能让我知道我做错了吗?

0 个答案:

没有答案