うーん。。。

例の問題になってるシステムでどうにもこうにも釈然としない。
イントラ向けWebアプリで、多分ブラウザの戻るボタンを多用してるっぽいんだけど、
直接利用者に話せるわけでもないので、微妙な立場なんだが。。。
登録ボタン押して、戻って、別の処理して。。。とかやったら、
確かに変になるんだろうけど云々。
後、EntityManagerでManagedなオブジェクトを直接Viewに使う、
いわゆるOpenSession In Viewパターンを使ってたんだけど、
Wicketで戻るボタンとか使うと、セッション情報がシリアライズされて保存されるので、
ManagedからDetachedになっちゃって、
実際に保存する際のpersist/merge処理する時に、
色々問題になっちゃうんだよねぇ。
と言うわけで、一気に方針転換。
Viewでは全部Detachedで扱い、登録時はmerge一択。
うーん、我ながら行き当たりばったりで怖い。
後、EntityManagerはスレッドセーフでは無いので、
FactoryだけSingletonに改修。
これでとりあえず現状でてる問題は解決するはず。
後は明日のリリース待ちだぬあ。