設定ファイルの適用

設定ファイルの適用


   各種設定が終了したら「Exporters」タブを選択します。

   ここでは生成するファイルを選択します。今回は、DTO/マッピング・ファイル/Hibernate設定ファイルを選択します。生成したいファイルを選択したら「実行」ボタンを押します。
Hibernateファイル生成画面(Exporters)
図5:Hibernateファイル生成画面(Exporters)

   「実行」ボタンを押すとファイルの保存先と同様のフォルダにDTOとマッピング・ファイルが作成されています。

   また、Hibernate設定ファイルの内容が更新されます。

DAOの作成


   次にDAOを作成します。DAOもHibernate Toolsによって自動生成できます。

   また、Hibernate Toolsとは別のEclipseプラグインとして「Hibernate Synchronizer」という自動生成ツールも存在します。Hibernate SynchronizerはマッピングファイルからDAOパターンやGeneration Gapパターンを利用したコードを生成することができます。

Hibernate SynchronizerのWebサイト
http://sourceforge.net/projects/hibernatesynch/

   なお、今回は説明もかねますので手動で作成します。

   まずは、ShainDaoクラスです。

DAOクラス(ShainDao.java)
package hibernate;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
public class ShainDao {

   private Session session = null;

   public ShainDao(Session session) {
      this.session = session;
   }

   public List findShainByHQL() {
      Query query = session.createQuery("from hibernate.Shain");
      return query.list();         
   }

   public List findShainByCriteria() {
      Criteria criteria = session.createCriteria(Shain.class);
      return criteria.list();      
   }

}

   このクラスでは、検索処理に1の「HQL」と2の「Criteria」を使用しています。「HQL」とはHibernateで用意されている簡易検索言語です。また、Torqueと同じように「Criteria」を使用して検索処理を行うことも可能です。なお、1と2の検索結果は同じです。

   続いて、BushoDaoクラスです。

DAOクラス(BushoDao.java)
package hibernate;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

public class BushoDao {

   private Session session = null;

   public BushoDao(Session session) {
      this.session = session;
   }
   
   public List findBusho() {
      Query query = session.createQuery("from hibernate.Busho");
      return query.list();
   }

   public void saveBusho(Busho busho) {
      session.save(busho);      
   }

   public void deleteBusho(Busho busho) {
      session.delete(busho);
   }

}

   このクラスでは挿入処理にsave()メソッドを使用しています。

   save()メソッドはTorqueでも使用しましたが、Torqueと異なる点は、Torqueはデータオブジェクト自身のsave()メソッドを呼び出していましたが、HibernateではSessionオブジェクトのsave()メソッドを呼び出します。

   Sessionオブジェクトのsave()メソッドを呼び出すことによって、オブジェクトをHiberntateのSessionに関連付けることができます。save()メソッドの呼び出しによって、オブジェクトの状態が一時オブジェクトから永続オブジェクトへと状態が遷移します。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30