Thank you for being patient. We are doing some work on the site and will be back shortly.
Thank you for being patient. We are doing some work on the site and will be back shortly.
皆さん、こんにちは。本連載を担当するビーブレイクシステムズの山之内です。 前回、SQL文を使用しないタイプのO/Rマッピングツールの1つとして「Torque」を紹介しました。第5回となる今回は、機能が豊富なO/Rマッピングツールの「Hibernate」を実際にサンプルを作成しながら解説していきます。 Hibernateは、Gavin King氏を中心とした「Hibernateチーム」が開発しているJavaのO/Rマッピングツールです。現在(2006年7月)の最新バージョンは3.1.3です。Hibernateは機能が豊富で、強力な検索を可能にするオブジェクトクエリ言語のHQLや、シンプルで扱いやすいAPIを提供します。
開発の現場 Vol.004 効率UP&スキルUP エンジニアのための実践ソフトウェア技術誌 作者: SE編集部出版社/メーカー: 翔泳社発売日: 2006/04/13メディア: 大型本 クリック: 3回この商品を含むブログ (17件) を見る PofEAA早分かりガイドがいいです!とても参考になります。 PofEAAちゃんと読まないとなぁと思いつつ放置していたのですが、興味が湧いてきました。 ところで、これを読んで、今仕事で必要になっているのはどうやら「粗粒度ロック」なんだと気づきました。で、この「粗粒度ロック」ですが、JPAのWrite Lockも「粗粒度ロック」の1つなのかなぁと思いました。「関連するオブジェクト群をまとめてロックする」という意味では同じだといえるような気がします。 http://capsctrl.que.jp/kdmsnr/wiki/PofEAA/?cmd=view&
前回はEJB 3.0のインターセプタ機能を使ったセッションBeanとコンテナ管理によるトランザクションについて説明しました。今回はJava EE(Enterprise Edition)やJava SE(Standard Edition)におけるO/Rマッピングの標準になる「Java Persistence API」*1を紹介しましょう。 Java Persistence APIを使うメリットは大きく二つあります。一つ目は,少ないプログラム・コードでデータにアクセスできることです。Java Persistence APIは,Javaオブジェクトをデータベースに格納したり,データベースのデータをJavaオブジェクトへ変換したりする処理を自動化してくれます。したがって,データベース・アクセス用のAPIであるJDBCを直接使ったアプリケーションよりも少ないプログラム・コードでデータベースへのアクセ
The databeans project, Raphael Jolly氏は4日(米国時間)、databeansの最新版にして最初のメジャーリリースとなるdatabeans 1.0を公開した。databeansはRDBMSを使わずに、完全にオブジェクト指向で作成されたJavaパーシステンスフレームワーク。エンタープライズアプリケーションにおける本格的なソリューションを提供するべく開発がおこなわれている。 databeans 1.0はGNU GENERAL PUBLIC LICENSE Version 2のもとで公開されているオープンソースソフトウェア。クラス内のインスタンスフィールドの代わりにディスク上のデータをJavaBeansアクセッサメソッドをベースにして読み書きするという特徴がある。そのほかの特徴は次のとおり。 RMIを使った分散機能 4 ANSI アイソレイションレベルをサポート
id:shot6さんが言ってたJavaEE勉強会でのid:koichikさんからの話って、たぶんS2EJB3UnitとS2JUnit4のパッケージ構成とか位置づけとかそんな話なのかなと勝手に推測しているんですけど(全然ちがうかも、単に僕が相談したいだけだったりします)、個人的には今ある形のS2EJB3Unitとそのパッケージのorg.seasar.framework.ejb.unitは廃止しちゃってもいいのかなと思っています。 interface EntityReader extends DataReader { } みたいなインタフェースだけS2JUnit4から使うようにしてEntityReaderの実装はJPA実装のパッケージ(kuinaとかs2hibernate-jpaとかs2toplink?とか)にあればすっきりしそうです。 で、S2JUnit4はもっとブラッシュアップしてEJB3
IDを自動生成する設定でEntityをpersistした場合、生成されるIDを期待値としてあらかじめExcelに用意できないのでS2Unitのreloadメソッドを使ってテストができないですね、という話が Seasar Conference 2006 Spring のときにありました。(S2Unitのreloadメソッドはプライマリキーを使ってDBから値をリロードします。) S2EJB3Unitで対策を考えてみました。EntityをpersistしてEntityManagerをflushすればEntityにIDが書き戻されるはずなのでこの値を使ってリロードするようにしてみました。こんな感じでどうでしょう。 まず、期待値と結果値をExcelで用意します(DEPARTMENT - EMPLOYEE - ADDRESS といったテーブル構造を想定してます)。[]でくくったのはExcelのシート名
世の中はhibernate礼賛のサイトが沢山あります。 O/Rの中ではバラ色の世界が広がっているように錯覚してしまいます。 しかし実際にマジに使用すると、ひどい目に遭う局面が沢山あります。 -- 2007/01/16 追記 ここに情報を探しにきているようなひとは、悪いこと言いませんのでhibernateの採用を中止しなさい。 利用しだしていても、今引き返した方が工数が減ります。間違いない。1年以上経った今でも、hibernateのオニモツ加減には慣れません。 -- 2007/01/16 追記ここまで -- ここから追記 下記(特にシチュエーション4)について、再検証を行う必要がありそうです。 必ず、koichikさんのブログを併読してください。 http://d.hatena.ne.jp/koichik/20051002#1128268814 http
■ [XLSBeans]XLSBeansでExcel/POJOマッピング あっさり前言を撤回。てゆーかですね。別のところで日記を書くといっても自分でsns作ってるのでそれを使いたいわけで、そうするとCGIを置けるレンタルサーバってことになるわけで、SourceForge.jpにsnsを設置してAmaterasの開発日記として書く手も考えましたが、まあ、他のネタも多くなりそうだしいまいちかなと。無料レンタルサーバで広告出るのも嫌だし、かといって新しく別のサーバ借りるとここの契約が切れるまでは二重に金がかかるし、自宅サーバの電気代よりはレンタルサーバ代のほうが安いわけで、そうなるとこのサーバに別にsnsを設置するのも馬鹿だし、やっぱりここでいいやという結論に達しました。まあ、そんなにやばいことは書いてないと思うし、シャレの通じない人はご遠慮くださいってことでひとつ。ところでXLSBeansとい
http://jcp.org/aboutJava/communityprocess/final/jsr220/index.html ドラフト版のときのように変更箇所に線が引かれていないのでどこが変わったのかぱっと見わからないよー。線つきバージョンも出ればいいのに。 Revision Historyを参考にざっくり興味があるところを見てみました。 JPAのクエリ言語はいままで「EJB QL」と呼ばれていましたが、「Java Persistence query language」という名称に変わりました。「Java Persistence query language」は「EJB QL」を拡張した言語という位置づけらしいです。気になっていただけにちょっとすっきり。略称は「JP QL」? EntityManagerFactoryとEntityManagerのインタフェースが若干変更されました。こ
Ruby on Railsってのがあって、ほとんど何も書かずにDBからテーブル情報とってきてORマッピングするんですが、それと同じようにHibernateでもマッピングクラスとかマッピング定義とか書かずにORマッピングしようじゃないか、っていうものです。 マッピングクラスのソースとマッピング定義をデータベースから自動生成するなら、それを実行時にやっちゃえばいいんじゃない?ってとこで。 実際、内部で、ファイルに保存すれば普通にマッピング定義として使えるようなhbm.xmlを生成してます。 ここからダウンロードしてください。 http://www.fk.urban.ne.jp/home/kishida/soft/hibernateonrails-preview.zip(16KB) Java2SE5の文法を使ってるので、Java2SE5.0以降じゃないと動きません。 あと、
ものは試しということで、java の O/R mapper Hibernate を試してます。で、検索クエリを動的に組み立てるのに超便利な(気がする) Criteria を使ってるときに、こいつで組み立てた検索条件の検索結果の数を知りたい。つまり SELECT COUNT(*) FROM ... がしたい、と。Hibernate 2 まではどうもできなかったっぽいんですが(ちゃんとは調べてないです)、Hibernate 3 ではできるようになってます。 で、この話、Google で日本語で「Hibernate Criteria count」とかしても「できないっぽい」「できません」「HQL使っとけ」てな話ばかりで(3.0が出たばかりだから?)、僕もあやうく諦めるところだったので、ここに「できますよー」と書いときます。 やり方はリファレンス・ドキュメントの 16.7. Projections
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く