Service/Daoクラス前へ12345678910次へデータベース操作を行うServiceクラスとDaoクラスのカスタマイズ方法を説明します。ServiceクラスとDaoクラスServiceクラスとDaoクラスはモデル毎に用意されます。Serviceクラスは内部でDaoクラスを利用します。Serviceクラスはトランザクション境界となっており、実際のデータベース操作はDaoクラスが行います。Daoクラスはそれ以外にキャッシュの制御や問合せのためのCriteriaの作成を行います。一部でプロセスビーンが残っているところがありますが、今後のバージョンアップに伴い失くしていきます。そのためプロセスビーンを用いたカスタマイズは非推奨となっています。Object)ORMフレームワークHibernateを利用したクラスとなっています。CRUD処理は一つのDaoクラスで実現します。データベースへの問合せはHibernateが提供する「CriteriaクエリAPI」を使います。SQLを直接、生成しているところはありません。DaoクラスのインタフェースDaoクラスの利用例を示します。この場合、処理のタイミングで悲観ロック処理を適用します。ロックをかけた場合、同データが更新されれば、トランザクション終了のタイミングでロックは解除されますが、更新しない場合はロックが残ったままとなってしまいます。メソッドの第二引数も、同じ動作となります。EntityServiceにおけるトランザクション管理トランザクション境界となるクラスです。アノテーションが付与されています。メソッド開始時に自動的にトランザクションが開始されます。正常終了でコミットされます。Exception発生時には自動的にロールバックされます。メソッドの外側で以下のようにインスタンス変数を宣言することで取得することができます。customerHelper;各クラスの型パラメータの第一引数は対象クラスになります。第二引数は主キーの型になります。Criteriaを使った検索WagbyではHibernateが提供するCriteriaを使ったデータベース検索を実現しています。クラスを自動生成しています。Criteriaを利用したコード例を示します。組み立てる(数値の範囲検索)。組み立てる(部分一致検索)。