0

リモートで Java 関数を呼び出す JavaScript 関数を呼び出す .xhtml ファイルにボタンがあります (jboss seam 環境で)。その Java 関数には、entityManager.persist(object) があります。このコード行が DB にコミットされない理由を知っていますか? トランザクションが開始されていないことを示しています。リモートコンテキストでは、トランザクションが開始されていないと思います。なぜなら、上記のjavascriptを使用する代わりに同じJava関数を呼び出すアクションをそのボタンに配置すると、正常に動作するからです。entityManager はオブジェクトを永続化し、DB でそれを見ることができます。

javascriptを使用してオブジェクトを実際に永続化してJava関数を呼び出す方法を知っている人はいますか? (コールバック関数が必要なため、javascript を使用する必要があります)

4

1 に答える 1

0

トランザクションを保証するには、org.jboss.seam.util.Work を拡張できます。

new Work()
{
    @Override
    protected Object work() throws Exception {
        // do your stuff
        return null;  
    }
}.workInTransaction()
于 2009-05-20T22:18:54.843 に答える