[jpa:44] Re: JPAアンケート集計

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 4月 30日 (月) 02:00:27 JST


小林 (koichik) です.

Date:    Fri, 27 Apr 2007 17:51:04 +0900
From:    Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [jpa:43] Re: JPAアンケート集計

> アンケートの結果をまとめてみます。

Xenon さんがブログで回答してくれてました.

http://d.hatena.ne.jp/Xenon15/20070427

その結果を反映すると...

> (1)JPAを仕事で使っていますか、もしくは今後使う予定がありますか?

YES・・・6人
NO・・・9人

> (2)(1)で「はい」と答えた方に質問です。
>    JPA実装には何を使っていますか、もしくは使う予定ですか?
>    [Hibernate / TopLink / OpenJPA / Cayenne]

Hibernate・・5人
TopLink・・・1人
OpenJPA・・・0人
Cayenne・・・0人

> (4)お気に入りのDBアクセスのフレームワークはありますか?

JPA・・・・・・1人
Hibernate・・・4人
TopLink・・・・1人
Kuina-Dao・・・2人
S2Dao・・・・・4人
SpringJDBC ・・3人
SpringJPA・・・1人
Torque ・・・・1人


> JPAはもしかしたら全然使われていないのかもなんて
> 思っていたのですが、YES 6人、NO 8人という結果を
> 見るとそこそこ健闘しているのかなと思いました。

6/15 になりました.4 割ってのは予想外の大健闘です.
さすがに世間の実態とはかけ離れていると思いますが.(^^;


以下,個人的に気になったポイントを少々.

> (2)(1)で「はい」と答えた方に質問です。
>    JPA実装には何を使っていますか、もしくは使う予定ですか?

やっぱり Hibernate 強いですね.
TopLink Essentials や OpenJPA は今後 Glassfish や
Geronimo との組み合わせで人気を人気を集めることが
できるかが注目でしょうか.

> (3)JPAを学ぶにあたってわかりにくい点を挙げるとしたらそれは何ですか?

回答の多くが遅延ロード,エンティティのライフサイクル,
キャッシュなどなど,永続コンテキストにまつわるものでした.
JPA のキモですもんね.
ここは仕様を理解するのも難しいし,教えるのも難しいと
思うのですが,加えて細かい挙動は実装によっても違うし,
使いこなすのはさらに難しいということで,これが JPA の
足かせなのは間違いなさそうですね.

また,日本語の情報が少ないことに関しては,入門書の
計画が進んでいると聞いているので,そう遠くないうちに
多少は解消されるかも.

現時点では,

「標準EJB 3.0プログラミング」
http://www.amazon.co.jp/dp/4797333367

の中で JPA の解説があるようです.
それから,

「Oracle JDeveloper 10g JSF/EJB3.0アプリケーション開発」
http://www.amazon.co.jp/dp/4903687015

という本がちょうど発売されたばかりのようですね.
こちらも「EJB3.0」の一部として JPA の解説がありそう.


> (4)お気に入りのDBアクセスのフレームワークはありますか?

話題を Seasar に限ってない ML とはいえ,やっぱり S2Dao が
強いだろうと予想していたのですが,意外とばらけたなぁという
印象.
JPA + Hibernate + TopLink を一つにくくれば最大勢力です.(^^;
SpringJDBC も支持されてますね.

> (5)DBアクセスの為にSQLを積極的に書きたいですか? 
>    それともできるだけ書きたくないですか?

やっぱり,決まり切った SQL は書きたくないという意見が
ほとんどですね.
しかし,Java Expert という雑誌にも書きましたが,
JPA 単独では SELECT 文を書かずに済ませるという面は
あまり持っていないので,Kuina-Dao や krank のような
「JPA 上の DAO フレームワーク」が出てこないと
なかなか JPA を使う人は出てこないかもしれませんね.

いや,実は主キー指定の find() でエントリポイントとなる
エンティティを取ってきて,後は遅延ロードだけで済ませる
なんて使い方をすれば JPA 単独でも SELECT 書かずに
済みますが...
そういう使い方する人って多いんでしょうか?
海外で SSH がデファクトって話があるくらい Hibernate が
使われているのは,実はそういう使い方をしているからじゃ
ないかという話が出ることもあるのですが.
どうなんでしょうねぇ?

それから,白石俊平さんのご意見.

Date:    Tue, 24 Apr 2007 11:50:26 +0900
From:    Syunpei Shiraishi <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [jpa:22] Re: JPAアンケート

> > (5)DBアクセスの為にSQLを積極的に書きたいですか? 
> >    それともできるだけ書きたくないですか?
> できるだけ書きたくないです。
> HQL/EJBQLなら良いです。

SQL はイヤだけど,HQL/EJBQL (たぶん JPQL も) なら
いいという人がいるのは予想していなかったので驚きました.
個人的には JPQL は結合の記述が少し楽になるだけで,後は
貧弱なだけの SQL 方言という程度にしか思っていなかったので.
できれば HQL/EJBQL ならいいけど SQL はイヤという理由を
聞かせて頂けると嬉しいです.


ともあれ (JW),回答いただいた皆さん,ありがとうございました.
引き続き,JPA に関していろいろ議論していけたらと思います.
よろしくお願いします.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



jpa メーリングリストの案内