0

Weblogic9アプリケーションをJBoss5.1に移行しているところ、次の問題が発生しました。

セッションejbは、CMP2.1エンティティを管理します。これらは、MyEntityLocalHome.create()メソッドの呼び出し時に挿入されます。データベーステーブルには「nullではない」制約があるため、通常はcreate()メソッドの呼び出し後に設定される一部のフィールドが設定されず、挿入が失敗します。

マネージャーがcreate(myNotNullField);を呼び出した場合、私は知っています。メソッド、正しいパラメータを渡すと、問題は解決されます。残念ながら、マネージャーは実行時にどの* LocalHomeとどのcreate()メソッドを呼び出す必要があるか(イントロスペクションによって)を検出するレイヤーを使用し、createメソッドはエンティティのPKフィールドを使用して検出されます。つまり、レイヤーは、PKの一部ではないパラメーターを持つcreate()メソッドを見つけることができません。

JBossのドキュメントで、ejbPostCreate(...)メソッドの後に挿入を延期できるパラメーター(insert-after-ejb-post-create)を見つけましたが、「 LocalHome.create()呼び出しは、DB挿入後も戻ります。

管理者が「nullではない」フィールドを設定できるように、DBへの実際の挿入をトランザクションの最後まで遅らせるにはどうすればよいですか?アプリはWeblogic9で動作するため、このようなオプションはWLSに存在すると思います...このパラメーターはJboss 5.1に存在しますか?

ご協力いただきありがとうございます :)

4

1 に答える 1

0

これは、standardjboss.xmlのcmp2.x jdbc2構成を使用し、insert-after-ejb-postprocessをfalseに設定して実行されました。

于 2010-08-23T11:32:56.320 に答える