我应该手动提交这个游戏!交易?

时间:2011-11-17 15:33:26

标签: java jpa transactions playframework

找到how to manually commit a Play! JPA transaction后......我不确定我真的需要。

我有两个控制器操作:一个添加网站,然后立即重定向到下一个...显示其编辑表单。

public static void added(String title){
    Task task= new Task();
    website.title = title;

    task.save();
    // Do I really need to commit this transaction here?
    // Note that task.id is already filled here, somehow
    // https://stackoverflow.com/questions/8169640/how-does-an-entity-get-an-id-before-a-transaction-is-committed-in-jpa-play
    JPA.em().getTransaction().commit();

    edit(task.id);
}

public static void edit(long taskId) {
    Task task = Task.find("byId", taskId).first();
    render(task);
}

是否需要在重定向到edit()之前提交事务?

1 个答案:

答案 0 :(得分:2)

没有。 :)(虽然将来可能会出现需要控制事务处理的情况,但这似乎不是其中之一;正如您还发现的那样,Play!会在保存后立即刷新会话,所以你有访问自动生成的PK ID。因为这似乎是你尝试这个的唯一原因,我会让Play!做它的事情,只有劫持控制,如果/你真的需要。)