【问题标题】:Should I manually commit this Play! transaction?我应该手动提交这个 Play!交易?
【发布时间】:2011-12-31 11:21:30
【问题描述】:

在找到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()之前是否需要提交事务?

【问题讨论】:

    标签: java jpa transactions playframework


    【解决方案1】:

    没有。 :) (尽管将来可能会出现您可能需要控制事务处理的情况,但这似乎不是其中之一;正如您还发现的那样,Play! 在保存后立即刷新会话,因此您有访问自动生成的 PK ID。由于这似乎是您尝试此操作的唯一原因,我会让 Play! 做它的事情,并且仅在您确实需要时劫持控制权。)

    【讨论】:

    • 感谢您闲逛回答 Play!问题。我喜欢它的官方支持论坛(除了 Google 网上论坛)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    相关资源
    最近更新 更多