1 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 11:54:44 ] 前スレ: Java⇔RDBのMapping-Frameworkを語るThre Vol.3 ttp://pc8.2ch.net/test/read.cgi/tech/1090653286/ 過去スレ: 「Java⇔RDBのMapping-Frameworkを語るスレ Vol.2」(落ち) ttp://pc5.2ch.net/test/read.cgi/tech/1086315004/ 「Java⇔RDBのMapping-Frameworkを語るスレ」(落ち) ttp://pc5.2ch.net/test/read.cgi/tech/1049030272/ ●まずは、基礎知識と技術選択指針など [The Fundamentals of Mapping Objects to Relational Databases] (RDBに対するオブジェクトマッピングの基礎(英語)) ttp://www.agiledata.org/essays/mappingObjects.html [O/R-Mappingツールの比較サイト(英語)] ttp://c2.com/cgi-bin/wiki?ObjectRelationalToolComparison [Catalog of Patterns of Enterprise Application Architecture (PoEAA)] ttp://www.martinfowler.com/eaaCatalog/ あとは>>2 以降
2 名前:デフォルトの名無しさん [2005/12/16(金) 11:56:08 ] 2げと?
3 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 11:57:05 ] ●O/R-Mapping Framework各種 [HYBERNATE] ttp://www.hibernate.org/ [Cayenne] ttp://objectstyle.org/cayenne/ [Torque] ttp://db.apache.org/torque/ [iBATIS - SQL Maps] ttp://ibatis.apache.org/ [Java Ultra-Lite Persistence (JULP)] ttp://julp.sourceforge.net/index.html [Jakarta Commons DbUtils](O/R-Mappingというよりは、O/R-Bridge) ttp://jakarta.apache.org/commons/dbutils/ [Amber - Lightweight Java R/O Mapping Framework] ttp://sourceforge.net/projects/amber-db ●その他関連情報・ツール [JoSQL] JavaオブジェクトをSQLで操作 ttp://josql.sourceforge.net/ [SQL Generator] Javaでお手軽かつ動的にSQLを生成する ttp://sourceforge.jp/projects/sql-generator/
4 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 12:12:38 ] とりあえず立てた。あとはヨロ ノシ
5 名前:デフォルトの名無しさん [2005/12/16(金) 13:09:16 ] ここも貼ろうよ [GlassFish / EJB3.0 ReferenceImplemention ] https://glassfish.dev.java.net/
6 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 20:53:47 ] これも。 [S2Dao] ttp://www.seasar.org/s2dao.html
7 名前:デフォルトの名無しさん mailto:sage [2005/12/16(金) 21:29:39 ] Mapping-Framework使いの皆さんに聞きたいんですが、 今回、Java⇔Oracleで、基幹システム(見積、受注、発注、出荷、在庫など)を 組むことになったのですが、 こういうのって意外と顧客独自な複雑な仕様があるので、テーブルもすごい何十個とかあります。 全てのテーブルのMappinngクラスを作ったりするもんなんですか? 複数テーブルとリレーション組んだりする時もその都度Mappinngクラス作るんですか? なんか、結局SQL文コードに埋め込む形になっちゃいそうなんですが・・・ 実際どうなんでしょうか?
8 名前:デフォルトの名無しさん mailto:sage [2005/12/17(土) 01:01:54 ] >>7 通常は、クラスを自動生成したりするツールがあるので、テーブルの数はあまり問題じゃない。 問題は、顧客独自な複雑な仕様のほうだろ。それがO/Rマッパーでサポートできるかどうか。 というか、O/Rマッパー使うときは、O/Rマッパーを使うという前提でテーブル設計しないとつらいことが多い。 一般には、楽できるO/Rマッパーほどテーブル設計の自由度が低く、逆に自由度が高いO/Rマッパーだとあんまり楽にならない。 >複数テーブルとリレーション組んだりする時もその都度Mappinngクラス作るんですか? O/Rマッパーによる。
9 名前:デフォルトの名無しさん mailto:sage [2005/12/17(土) 10:32:02 ] あるシステム会社で、 .NETだったが、O/Rマッパーして、自動生成されたクラスがあるのに、 実際は、そのまま。SQL発行して、レコードセットみたいなものを使って取得してたりしてた。 こういのだけは、カンベン
10 名前:デフォルトの名無しさん [2005/12/22(木) 21:23:10 ] ホシュ
11 名前:デフォルトの名無しさん [2005/12/23(金) 17:56:04 ] EJB3のEntityManagerで、INSERTするときに、値にCURRENT_TIMESTAMPのようなSQLから取得する値を加えることは可能ですか?
12 名前:デフォルトの名無しさん mailto:sage [2005/12/23(金) 22:33:39 ] 値がnullのときにinsertに加えないようにする設定があったような気がする
13 名前:デフォルトの名無しさん [2005/12/24(土) 10:20:18 ] blanco Framework hp.vector.co.jp/authors/VA027994/blanco/blanco.html これもここでいいのかな? 使った人レビューなぞきぼんぬ。
14 名前:デフォルトの名無しさん mailto:sage [2005/12/24(土) 11:00:27 ] >>7 基幹システムって時点でテーブル何十個じゃすまないだろう。 基幹システム作った経験無ければ、パッケージに品。
15 名前:デフォルトの名無しさん [2005/12/24(土) 13:55:50 ] >>12 INSERT INTO HOGE(HOGE1, HOGE2, INSERT_DATE) VALUES (?, ?, CURRENT_TIMESTAMP) のようなSQL文をpersistで作らせるのは無理でしょうか?
16 名前:デフォルトの名無しさん mailto:sage [2005/12/25(日) 01:11:14 ] ほんとにいつも悩ましいのは、 複合キーでER設計するか? 楽観排他制御をサポートしているか? ネイティブのSQLを使うか? 今んとこ、Hibernateがもっともトラブルが少ないね。俺のプロジェクトでは。
17 名前:デフォルトの名無しさん [2005/12/25(日) 13:04:36 ] ZEKEってどーなんだろ。 未踏のやつ。
18 名前:デフォルトの名無しさん [2005/12/25(日) 21:41:07 ] 現在MySQL + HibernateのWebアプリケーションがあり、 これをOracle10gに移行しようとしています。 MySQLではPKを自動インクリメントで取得していますが、 Oracleではシーケンスになるので、 MySQLで <generator class="identity" /> ってなってるところを <generator class="sequence"> <param name="sequence">シーケンス名</param> </generator> としてやればよいのでしょうか?
19 名前:デフォルトの名無しさん [2005/12/28(水) 02:11:48 ] HIBERNATE イン アクション www.amazon.co.jp/exec/obidos/ASIN/4797330805/ ついに出るねぇ。 英語読めない俺としては嬉しい限り。
20 名前:デフォルトの名無しさん mailto:sage [2005/12/28(水) 03:50:24 ] >>19 原著が出たのは結構前なので、やっぱりHIBERNATE 2.xベースの解説なのかな。 3.xへの補足も入っているとうれしいんだけど。
21 名前:デフォルトの名無しさん mailto:sage [2005/12/28(水) 18:27:04 ] ibatisがキャッシュしてしまう問題で、 sqlmapのflushDataCache()メソッドを使用したのですが キャッシュが消えずに、2回目のsqlでエラーになってしまいました。 キャッシュを削除する方法はないでしょうか?
22 名前:デフォルトの名無しさん mailto:sage [2005/12/28(水) 20:26:14 ] >>21 selectの抽出項目を条件により動的に変更する、を言っているの? どうやらibatisではだめなようだね。 rezultクラスをHashMapにしても、最初のクエリーの項目が残り、 次回のクエリーで、初回の項目と違うとエラーになります。 Builderで再ビルドすれば、全てクリアできるので問題なし。 1クエリごとに生成するので大変だが・・・
23 名前:デフォルトの名無しさん mailto:sage [2005/12/28(水) 20:43:13 ] one-to-one がまともになる予定ある?
24 名前:デフォルトの名無しさん mailto:sage [2006/01/01(日) 09:17:49 ] >>21 remapResultsのことかな?
25 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 10:55:27 ] >>24 remapResultとはどのようなことでしょうか。 名前から推測すると、多分その設定によるものだと思います。 ちょっと調べてみます。
26 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 13:52:45 ] >>24 <select id="select_query" remapResults="true"> $query$ </select> と書いて実行しましたが、XML Parser Error. になりました。ibatisはバージョン2です。 下記を参考にしてみました。 ttp://www.mail-archive.com/ibatis-dev@incubator.apache.org/msg00225.html
27 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 14:52:44 ] >>26 どこでパースエラーになってるんでしょう? ちなみに、dtdはttp://www.ibatis.com/dtd/sql-map-2.dtdとおなじものですよね?
28 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 14:57:54 ] >>26 ああ、バージョンは2.0.9以降じゃないとダメみたいで。
29 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 20:01:06 ] マッピングを作成するときに、一番手軽(作成するものが少ない)で、 一番メンテナンスしやすい(修正のほとんどが設定ファイルなど)のは ダントツでibatisで間違いなし???
30 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 22:47:01 ] Cayenneもやればできる子>>29 ただし既存のテーブルには弱いが。
31 名前:デフォルトの名無しさん mailto:sage [2006/01/05(木) 23:33:04 ] Hibernateでも、自分で作成するものは少ないし。
32 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 09:27:33 ] >>29 カナ〜リ大きなXMLを管理する覚悟は必要。特にテーブルの数が多い時。
33 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 09:52:14 ] 29です。ibatis派です。 sqlはすばらしい言語なので、プログラムではsqlのすばらしさを邪魔しないフレームワークが 一番賢いと考えています。 つまり、sqlで対応できるところは、ロジックではなくsqlを修正する。 そのsqlの修正は、設定ファイル内のsqlそのものだけ、が一番よいと思います。 そのほうがsqlとjavaの特徴を最大限に引き出せるし、メンテが楽です。 俺は簡単かどうかに関係なく、クラスの数が多いのは好きではないです。 マッピング処理の為にクラスを作成するのは納得できないです。それが自動生成できるものだとしても。 いろいろなマッピングツールを見ましたが、特にEJBはひどいと思いました。簡単なことを複雑に考えようとしているし。 クエリの結果データをbeanにマッピングするたびにクラスを生成するツールは好ましいと思いません。 どうでしょうか、この意見
34 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 09:59:10 ] > sqlはすばらしい言語なので、 この仮定に同意できない。
35 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 10:18:16 ] >>34 リレーショナルデータベースさわるのにはとてもいいと思う。 リレーショナルモデルもきっちり作りこまれてるので、かなりいい。 >>33 > 特にEJBはひどいと思いました。 EJB2までの話。 > マッピングするたびにクラスを生成する クラスは生成せんだろ。 型保証とIDEによる補完を考えると、Javaの場合はテーブルに対応するクラスがあったほうが楽だしメリットも大きいと思われ。 SQLの外だしにこだわるなら、HibernateやEJB使うときでも外出しにすればいい。
36 名前:デフォルトの名無しさん [2006/01/06(金) 10:37:14 ] >>33 ドメインモデルの設計をビシィとやる。もちろんその時は RDBMSの存在など微塵も意識しない。 さて実装を考える段になって、既存のRDBMSの設計を 見ると、ドメインモデルと合致しない。 俺はiBATISが本領を発揮するのはこういう時だと思う。 だから、 >マッピング処理の為にクラスを作成するのは納得できないです。 もしこれが『DB設計にクラス設計が影響されるのは納得できん』 ということなら君の意見に賛成する。 iBATISはDBとOOのミスマッチをSQLで吸収可能だからね。
37 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 10:38:09 ] >>35 HibernateやEJB3って、ibatisみたいにsqlをかけるのでしょうか。 独自のSQLだと思っていたのですが。古い情報ですか。
38 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 10:49:03 ] >>36 まさにその通りです。 sqlとjavaクラスの間に物理的な依存性を持たせるのは危険だと思いっています。 その依存性を切り離すのがまさにibatisなのかなぁと。 sqlそのものの結果をクラスに好きなようにマッピングできるのですから、すごい。 というか、ibatisが普通の考え方だと思うんですよね。 なんか、javaはより難しく考える傾向にあるような・・・・。
39 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 11:00:13 ] >>38 ただibatisのSQL設定ファイルはいわばテンプレートなんだがその能力が低い。 リストや配列のプロパティで、そのままtoString()を呼んでDBに登録したいがエラーになる。 前のレスにあったけど、velocityみたいなテンプレート機能があるといいけど。 それに、qつのクエリのマッピングが一つのオブジェクトしか対象にできないのが痛い。
40 名前:デフォルトの名無しさん mailto:sage [2006/01/06(金) 22:04:16 ] >>37 かけるよ。
41 名前:デフォルトの名無しさん mailto:sage [2006/01/09(月) 19:25:17 ] S2Daoで、各テーブルに対応するJavaファイルを作るのって手でやるんでしょうか? リバースエンジニアリングしてくれて、勝手に作ってくれたりします?
42 名前:デフォルトの名無しさん mailto:sage [2006/01/09(月) 20:11:58 ] >>41 S2DaoMaker
43 名前:デフォルトの名無しさん [2006/01/09(月) 20:25:16 ] S2、S2って最近うぜー
44 名前:デフォルトの名無しさん mailto:sage [2006/01/09(月) 21:52:18 ] いちいちageるなうぜー
45 名前:デフォルトの名無しさん mailto:ごめん質問投げたいのでsageない [2006/01/10(火) 10:10:07 ] iBATIS_ToolsのAbatorを試した人、感想キボンヌ eclipseのpluginらしいのだけど。。。
46 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 11:04:00 ] >>45 velocityみたいに、sqlmapの中で使えるtoolがほしい・・・
47 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 11:54:09 ] ibatisで結果をHashMapにセットすることができますが、 Beanの中にあるHashMapにデータをセットすると、そんなフィールドないとのエラーになります。 エラーを見ると、対象がHashMapなのに、setプロパティ名を探しに行っているみたいです。 HashMapをDynaBeanに変えてもだめでした。 これは仕様でしょうか。 気になるのが、queryForObjectではなく、 SqlMapClientBuilder.buildSqlMapClient(reader);でエラーになります。 エラー Cause: com.ibatis.common.beans.ProbeException: There is no WRITEABLE property named 'test' in class 'java.util.HashMap' sqlMap <resultMap id="user" class="ibatis.User"> <result property="hashMap.test" column="HASHMAP_TEST" /> </resultMap> <select id="select_hash" resultMap="user" > select 'ssss' as HASHMAP_TEST from dual </select> クラス public class User { private HashMap hashMap = new HashMap(); ・ public class User { private DynaActionForm hashMap = new DynaActionForm(); ・
48 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 17:09:54 ] ibatisですがiterateの中でisEqualをかけるとエラーになりました。 無謀でしょうか・・・ <iterate prepend="WHERE" property="data" open=" ID IN (" close=")" conjunction="," > <isEqual property="#data[]#" compareValue="1"> #data[]# </isEqual> </iterate>
49 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 18:36:39 ] >>47 HashMapに設定可能というのは、 resultMapのclassにHashMapを使える というのであって、 HashMap型のプロパティに値を設定できる 訳ではないのではないかという気がします。
50 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 18:39:54 ] >>48 自分で試したわけではないけど、こういうページがありました。 ttp://www.mail-archive.com/ibatis-dev@incubator.apache.org/msg00854.html <iterate>の内側のプロパティ名はそのまま渡しているみたいです。
51 名前:デフォルトの名無しさん mailto:sage [2006/01/10(火) 19:04:38 ] >>49 >>50 ありがとうございます。 再度修正して実行してみます。
52 名前:デフォルトの名無しさん [2006/01/21(土) 17:14:07 ] Hibernateについて質問なんですが、テーブルAとテーブルBがあって、 テーブルAの主キー:A_ID、 テーブルBの主キー:B_ID、A_ID(複合キー) という場合、テーブルBに対応するクラスBとそのマッピングファイルってどう書けばいいですか? 複合キーの一部が外部キーの場合にどう書いたらいいのか分からなくって・・・・・・。
53 名前:デフォルトの名無しさん mailto:sage [2006/01/25(水) 21:50:39 ] ibatisでiteratorの入れ子は可能でしょうか。 入れ子のiteratorのpropertyのインデックスを指定しないと動作しないです。
54 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 08:41:26 ] >>52 HSQLDBのテストテーブルがちょうどそんな形になってる。 Hibernate Toolsにhbm.xmlを自動作成させたらこうなった。 <composite-id name="id" class="test.entity.ItemId"> <key-property name="invoiceid" type="integer"> <column name="INVOICEID" /> </key-property> <key-property name="item" type="integer"> <column name="ITEM" /> </key-property> </composite-id> <many-to-one name="invoice" class="test.entity.Invoice" update="false" insert="false" fetch="select"> <column name="INVOICEID" not-null="true" /> </many-to-one>
55 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 10:22:32 ] Hibernateで他がロックしているかどうか取得する方法ってありますか? 他がLOCK TABLEしている時にHibernate側でupdateしようとすると、他が コミットされるまで、止まってしまいます。
56 名前:デフォルトの名無しさん mailto:sage [2006/01/27(金) 22:12:52 ] >>55 使えるDBは限られるけどorg.hibernate.Session#lock()に LockMode#UPGRADE_NOWAITを指定すれば出来ると思われ。 ただし、他のトランザクションのロックをポーリングしたいって場合は、 設計の方に問題がある可能性がかなり高い。っつーか、ほとんど禁じ手。 トランザクションはユーザー入力を介在させずに短時間で完了させるべし。
57 名前:デフォルトの名無しさん [2006/01/27(金) 23:41:50 ] >>54 レスありがとうございます。 そのマッピングだと、複合キークラスが class ItemId { private Integer invoiceid; private integer item; } で、ItemクラスのフィールドにItemIdクラスとInvoiceクラスのフィールドを定義する、 って感じで合ってますか?
58 名前:デフォルトの名無しさん mailto:sage [2006/01/28(土) 02:35:28 ] >>57 合ってる。クラスもそのように自動作成された。 Hibernate in Actionに載ってたけど、many-to-oneタグのupdateとinsertをfalseにすることが重要みたい
59 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 00:02:02 ] >>58 ありがとうございます! やってみます。 ちなみに、参考までに伺いたいのですが、Hibernate Toolsの自動生成のマッピングの品質(?)ってどうなんですか? 本とかネットでも手動でマッピング定義の解説が多いような気がするので、 もしかしたら、手動でマッピングしないとパフォーマンスに問題があるとか、 複雑なテーブルはマップできないとか、そういう事情でもあるのかな?って思って。
60 名前:デフォルトの名無しさん mailto:sage [2006/01/29(日) 10:08:35 ] >>59 DBスキーマからマッピングファイルを作るのは、以前はMiddlegenを使うことが多かったみたい 本や雑誌の説明等にも、Middlegenの使い方がよく説明されている。 今のHibernate側の方針は、スキーマからマッピングファイル、永続化クラスの作成まで Hibernate Toolsに全部任せようとしてるように見える 実際使ってみた印象は、テーブルが大量にある場合はとても便利だと思う。 特に複合主キーを使ってる場合は、主キークラスを自動で作ってくれるのがありがたい。 テーブルに外部キー制約をつけておけば、自動的にone-to-oneやmany-to-one等の関連定義もやってくれる。 反面、フィールドの型の定義がちょっと微妙で、char型やbyte、short、boolean型等を積極的に使ってくる。 プリミティブ型とラッパーオブジェクトの区別が曖昧。「not nullカラムのときはプリミティブ型」のように定義してほしかった。 また、TIMESTAMP型に対してjava.util.Dateを定義してしまうので、TIMESTAMPをversion管理に使いたいときは修正が必要。 テーブル名やカラム名にアンダーバーが入ってるときは、アンダーバーを自動的に排除してクラス、フィールドの名前を作成し マッピングファイルのカラム名定義でマッピングしてくれる。 しかし、いちいちマッピングファイルに書くぐらいなら、NamingStrategyで定義した方がいいと思うので あまりうれしくなかったりする。 結局、手で作るより便利なのは間違いないが、出来たファイルやクラスを一通りチェックする作業は必要だと思う。 Toolのカスタマイズ方法があまりわかってないので、もしかしたらもっと便利に使えるかも?
61 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 00:42:23 ] >>60 なるほど! チェック作業は入るとしても、全部手書きよりは断然効率良さそうですね。 是非使ってみたいと思います。 いろいろとありがとうございました!
62 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 11:34:03 ] Hibernate Toolsは前使おうとしたが、 ファイルエンコードが指定出来ず苦労した記憶が・・・ (UTF-8のプロジェクトで使うのにMS932でしか生成できず) さすがにもう改善されたのかな?
63 名前:デフォルトの名無しさん mailto:sage [2006/01/31(火) 17:51:14 ] Hibernate Toolsを使ってDBから定義ファイルを生成するときに many-to-manyカラムを生成する方法をご存じの方がいたら、教えてください。
64 名前:デフォルトの名無しさん mailto:sage [2006/02/02(木) 23:54:22 ] koichikさんの日記にあるようなhibernateが実行しているsqlを整形して 表示するのってどうやるんですか? show_sqlだとインデントまではしてくれないですよね。。。
65 名前:デフォルトの名無しさん mailto:sage [2006/02/03(金) 03:34:10 ] >>64 つ hibernate.format_sql
66 名前:デフォルトの名無しさん mailto:sage [2006/02/03(金) 21:50:00 ] >>65 Thanks a lot!
67 名前:デフォルトの名無しさん [2006/02/08(水) 02:14:46 ] nHibernateはどうよ?
68 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 12:50:30 ] Collectionの扱いがちょっと面倒
69 名前:デフォルトの名無しさん mailto:sage [2006/02/08(水) 14:27:01 ] >>67 素直にADO.NET使った方がよさげ
70 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 00:57:25 ] 自前でやれってか?
71 名前:デフォルトの名無しさん [2006/02/09(木) 08:04:25 ] >>69 他でも時々そういう意見目にするんだけど、 NHibernateよりADO.NET使う方がいい理由ってなんなの? なんかはっきりとADO.NETの方がいい!!って理由あんのかなぁ?
72 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 09:03:23 ] ORMならADO使ったほうがよさげ つかスレ違い
73 名前:デフォルトの名無しさん mailto:sage [2006/02/09(木) 09:05:57 ] >>71 ツールのサポート 情報の量 人の量
74 名前:デフォルトの名無しさん mailto:sage [2006/02/10(金) 11:31:03 ] ibatisのデータマッピングでの強い味方 ttp://canetrash.seesaa.net/article/2778499.html
75 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 21:36:14 ] HibernateやEJB3.0,iBatis程度をありがたがるjava技術者は哀れだな。
76 名前:デフォルトの名無しさん mailto:sage [2006/02/11(土) 22:03:12 ] ふむ、じゃあ何をありがたがろうか?
77 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 10:24:46 ] HibernateやEJB3.0,iBatisよりもADO.NETの方が優れている理由は、ORMとしての 実力は大きく変わらないが、Viewまで含めて.NETの機能が練られているところだろう。 いくらDAOのコーディング量が減っても、部分最適にしかならないから工数が減らない。
78 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 15:35:39 ] じゃあViewにWicketってことで終了。
79 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 16:26:54 ] Clickは?
80 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 16:29:22 ] 所詮は寄せ集めだな。
81 名前:デフォルトの名無しさん mailto:sage [2006/02/12(日) 21:59:44 ] フロントから裏までWebObjectsで終了じゃん。
82 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 13:52:52 ] >>80 それをいうと「寄せ集めと大差ないクオリティのXXX(値は各自の信仰に依存)って何よ?」って話になるからやめれw
83 名前:デフォルトの名無しさん mailto:sage [2006/02/13(月) 17:48:53 ] 漏れ寄せ集めの方が好きだぬ。 なんかeclipse VS netBeans(あるいはvisualStudio)の 議論を見てるみたい。目的目標出さずに道具の議論って あんま意味ないよ。
84 名前:デフォルトの名無しさん [2006/02/14(火) 02:34:07 ] 1000行のデータを1ページ50行ずつでページングしたりする時に、 各ページに必要なデータだけをDBからロードするようにしたいんだけど この場合はどうやればいいんだ? 当方Hibernate3を使用してます。
85 名前:デフォルトの名無しさん mailto:sage [2006/02/14(火) 08:09:30 ] >>84 ttp://www.hibernate.org/hib_docs/v3/reference/en/html/objectstate.html#objectstate-querying-executing-pagination
86 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 15:57:21 ] Hibernate3初心者ですが、ちょっと教えて下さい。 many-to-one のマップで、もし該当データが存在しなくても怒られない方法、 知りませんか? 例えば <class name="item"> <id name="id"/> <many-to-one name="bid"/> </class> <class name="bid"> <id name="id"/> <pro name="amount"/> </class> これで from Item item left join fetch item.bid をやって、 取得したリストを表示させると、bidを取得できなかったitemの item.bid.amountをgetすると、 LazyInitializ E org.hibernate.LazyInitializationException TRAS0014I: 次の例外がログに記録されました。 org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed と、アボンです。 session閉じて分離オブジェクトになってんだから、良いじゃん、 と思うんだけど、教えて下され。
87 名前:デフォルトの名無しさん mailto:sage [2006/02/15(水) 21:46:00 ] not-null="ignore"
88 名前:デフォルトの名無しさん mailto:sage [2006/02/16(木) 08:24:05 ] OracleがJBoss買収したら、TopLinkとHibernateは一つになるのか? あと、JBoss CacheをOracleがどう使うのか気になるな
89 名前:デフォルトの名無しさん mailto:sage [2006/02/16(木) 17:30:07 ] EJB3でTopLinkとHibernateはひとつになってる希ガス
90 名前:デフォルトの名無しさん mailto:sage [2006/02/16(木) 19:03:37 ] APIが一つにまとまったからね。 TopLinkの「放出されていない部分」っていうと、現状JDeveloperに 載ってるGUIツールの部分や分散環境対応部分が大きいのだっけ? oc4jとJBossコンテナはどう棲み分けるのかなぁ、Oracleって GlassFishも支援してるから、まるでOracle一つの内で三つ巴に なってるみたいなイメージだね。 買収成功祈る>Oracle
91 名前:デフォルトの名無しさん mailto:sage [2006/02/17(金) 01:52:07 ] BEA、KodoをOpen JPAとしてオープンソース寄贈 pcweb.mycom.co.jp/news/2006/02/15/344.html
92 名前:デフォルトの名無しさん mailto:sage [2006/02/17(金) 02:58:08 ] WebアプリでHibernate EntityManagerを試してみたいんだけど、 persistence.xmlはどこにおけばいい? アプリルート/META-INF に置いても読み込めません・・・orz Persistence.createEntityManagerFactory("em1"); でコケます。 No Persistence provider for EntityManager named em1 とスタックトレースに出力されます。 ("em1"はpsersistence.xmlの<persistence-unit>要素のname属性に指定した名前) WEB-INF/classesに置いてみても同じです。 Ejb3Configurationを使ってhibernate.cfg.xmlを読み込んでEntityManagerFactoryを 作る方法は成功しました。 環境はJDK1.5.0/Tomcat5.5.15/Hibernate3.1.2/hibernate-entitymanager-3.1beta6 です。
93 名前:デフォルトの名無しさん mailto:sage [2006/02/17(金) 03:45:20 ] なんで唯一試すのがMETA-INFなんだろう・・・
94 名前:デフォルトの名無しさん mailto:sage [2006/02/17(金) 04:08:23 ] >>93 スミマセン。 > WEB-INF/classesに置いてみても同じです。 と書いたように、他にはWEB-INF/classesも試しています。
95 名前:デフォルトの名無しさん mailto:sage [2006/02/17(金) 07:28:25 ] >>92 WEB-INF/classes/META-INF/persistence.xml classpath内の「META-INF/persistence.xml」を検索しているみたい WARのMETA-INFに入れても認識しないので注意
96 名前:デフォルトの名無しさん mailto:sage [2006/02/17(金) 08:04:49 ] >>95 うぉぉぉぉぉ!!!!! 激しくサンクスっ! うごきましたー!
97 名前:デフォルトの名無しさん [2006/02/26(日) 16:58:56 ] SpringのgetHibernateTemplate().findで検索をかけたら、NoClassDefErrorが 発生しました。 loadAllだと問題なく抽出されるし、クラス名もちゃんとフルパスで指定 してるんですが、何が間違ってるんでしょうか。
98 名前:デフォルトの名無しさん mailto:sage [2006/02/28(火) 23:35:35 ] >>97 さすがに、HibernateとSpringのバージョンくらいは書いた方が良いのでは・・・?
99 名前:デフォルトの名無しさん mailto:sage [2006/03/01(水) 01:32:48 ] これは失礼いたしました。 spring1.2.6とhibernate3です。
100 名前:デフォルトの名無しさん mailto:sage [2006/03/01(水) 17:14:08 ] Hibernateに関してですが、マッピングファイルに <version name="version" unsaved-value="negative"/> を記述して、バージョン管理をしていますが、このバージョンを 上げずに更新をするという処理は可能なのでしょうか。 一般的にはこのような処理は行わないと思いますが、2つのシステム で同じテーブルを読みに行くとき、他方のシステムは特定のカラムを 更新された場合、更新の検知は不要と考えており、上記のような処理 ができないかと考えました。