2011-11-17 31 views
0

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

回答

2

編號:)(儘管未來可能會出現您需要控制事務處理的情況,但這並不是其中之一;您也發現,Play!會立即刷新會話在保存之後,你可以使用自動生成的PK ID,因爲這似乎是你嘗試這種做法的唯一原因,所以我會讓Play!做它的事情,並且只在你真的需要時纔會控制控制。)

+0

感謝您徘徊回答玩!的問題。我喜歡官方支持論壇(除了Google Groups) – ripper234