拯救"掌握"与ebean在多对一关系中的元素

时间:2014-04-21 17:22:05

标签: java playframework ebean

我对Ebean有一点问题(在Play Framework,Java的上下文中)。 我有分享一对多关系的元素(BankAccount< - BankingOperation)。

我已经使用以下字段定义了BankAccount类:

@JsonIgnore
@OneToMany(cascade = CascadeType.ALL)
public List<BankingOperation> operations = new ArrayList<BankingOperation>();

对于银行业务,相应的字段:

@ManyToOne
@JsonIgnore
public BankAccount bankAccount;

我的问题是,当我尝试更新银行帐户时,会删除相关操作。这是我正在使用的代码:

public static Result saveAccount(Long id)
{
    Form<BankAccount> form = Form.form(BankAccount.class).bindFromRequest();

    if (form.hasErrors() || form.get().id != id) {
        return badRequest();
    }

    form.get().update(id);

    return ok();
}

我觉得删除操作是因为当我执行form()。get()时它们没有被加载,因此,当与DB同步时,Ebean会做出似乎是最好的解决方案。它

有人对此问题有任何线索吗?还有其他我尚未发现的解决方案吗?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

现在,我发现了一个(丑陋的)解决方案,在进行更新之前添加以下行:

Ebean.refreshMany(form.get(), "operations");

另一个解决方案可能不是在模型类中构建表单,而是在另一个类上构建,迫使我逐个映射每个字段。