ビューレイヤーとしてWicketを使用し、ORMとしてJPA(Hibernate)を使用するアプリケーションを開発しています。Wicketを使用してUIを構築することは(ajaxを使用しても)楽しいものでした。私の問題は、編集ページに永続オブジェクトを統合することから生じます(読み取り専用ページは、LoadadableDetachableModelを使用しても問題ありません)。
ビューのオープンセッションを提供するために、春からOSIVフィルターを使用しています。ただし、ドメインオブジェクト(@Entityマップクラス)を編集ページに保持しているため、ajaxコールバックでそれらのプロパティにアクセスすると、恐ろしい遅延読み込みの例外が発生します。
DTO / VOの道を進みたくないのは、コードが肥大化するだけで、ボイラープレートコードをたくさん書く必要があるからです。
1つのアイデアは、ビューでモデルオブジェクトを使用し、渡されたオブジェクトを現在の休止状態セッションとマージし、すべてのゲッターにアクセスしてオブジェクトを完全に初期化することでした。この後、オブジェクトはビュー(シード)に格納され、切り離されます。保存したら、それを再マージして変更をコミットします。
これは推奨される方法でしょうか?より良い解決策はありますか?不思議なことに、ほとんどの本/ブログ/ハウツーはそのような問題を完全に無視しています。
どのようなトランザクション管理を提案しますか?現在、サービスレイヤーで@Transactionを使用しています。Hibernateセッション間でデータの保存にアクセスする他の方法を使用する場合、それはどのように変わりますか?
私はここでちょっと迷っているので、どんなポインタ/リンクも歓迎されます。
前もって感謝します