java – 强制ebean更新对象

我有一个Play Framework 2应用程序

我使用使用
Scala 2.10.3构建的play 2.2.2(运行
Java 1.7.0_25).

我有一个方法,用来自安全表的副本检查对象.如果对象已被更改,它将被替换为来自安全表的对象.
但是当我调用save ebean时不会更新它:
[debug] c.a.e.s.p.DefaultPersister – 当bean未更改时跳过更新

public static <T> T findAndRestore(Class<T> clazz, Long id) throws Exception {
    T securedObject = SecuredEntityUtils.getObjectFromSecuredTable(clazz, id);
    T entity = Ebean.find(clazz, id);
    if (securedObject != null) {
        if (entity == null) {
            Ebean.save(securedObject);
        } else if (!entity.equals(securedObject)) {
            Ebean.update(securedObject);
        }
    } else {
        logger.warn("Not found securedObject for entity : " + entity.getClass());
    }
    return securedObject ;
}

有没有办法强制ebean保存/更新整个对象?

最佳答案 我可能错了,但Ebean并没有将实体标记为脏,因为你没有在其上调用任何setter.也许使用Ebean.markAsDirty(实体)可以解决你的问题(我知道这是一个非常古老的问题但是因为我偶然发现它,也许我的答案可以帮助某人)

点赞