[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 10/04 08:14 / Filesize : 245 KB / Number-of Response : 874
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Java⇔RDBのMapping-Frameworkを語るスレ Vol.4



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以降


496 名前:デフォルトの名無しさん [2006/11/27(月) 01:29:48 ]
WebアプリでHibernateを使うとき、updateて普通どうやるんですか?
マニュアルとか見ると、一般的なやり方として
load -> データ変更 -> update
しかないみたいなんですがWebアプリだとloadとupdateの間に
画面遷移が入るのが普通ですよね.

・最初にloadしたデータをセッションにでも入れておく
・updateのときにもういっかいloadする
・loadはせず、自分でオブジェクトを生成してidや全てのプロパティを手動で設定

どんなふうにやるもんなのでしょうか.

497 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 01:33:40 ]
・最初にloadしたデータをセッションにでも入れておく
の後、データを再度トランザクションにくくりつける。
・updateのときにもういっかいloadする
は、勝手にやってくれる。

498 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 01:38:35 ]
>>496
前の画面で取得したEntityをsessionなどに保持しておいて
Session(Hibernate Core)使うならupdate
EntityManager(Hibernate EntityManager)使うならmerge

手動で再loadとかすると、排他制御をHibernateに任せられなくなるので
お勧めできない

ちなみに、同一トランザクション上なら、取得したEntityは
値を変えるだけでUPDATEされるので、updateメソッド使う必要はない
ここを間違ってupdateメソッド使うかのように書いてる本が多いので、騙されないように

499 名前:496 [2006/11/27(月) 03:00:40 ]
ありがとうございます.
セッション管理がいやなので更新時再loadでやろうと思ってました...

ブラウザのウインドウをいくつも開いて同時に編集というのを
許可する場合はどうするんでしょうか?
entityの種類とidごとに別のキーでセッションに入れたりして、
セッション内に作業中entityをどんどん保存/updateしていく
という感じになるんでしょうか.


500 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 06:50:21 ]
ログを常時監視してる場合も有るから、人間が直接読めるってのは重要な場合も有るかと。

まあ要求するのは良いが、それならおまいが管理までやれって返されるだけだよ(w
やぶ蛇にならないようにガンガレ。

501 名前:デフォルトの名無しさん mailto:sage [2006/11/27(月) 09:13:01 ]
ログを監視する場合はむしろSQLを整形して吐かれるのは嫌だと思うんだけどなぁ。
ログは、基本一行で全部出して欲しい派。

正規表現で取り出しやすくなるし。

502 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 02:35:47 ]
いつの間にか、Dbutils1.1が出てますね。

503 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 02:23:14 ]
Java6のJDBC4.0使った簡易O/Rマッピングってどんな感じですかね?

504 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 02:38:46 ]
系統的にはiBatisみたいだね。
www.onjava.com/pub/a/onjava/2006/08/02/jjdbc-4-enhancements-in-java-se-6.html



505 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 22:45:10 ]
>>498
いつも思うんだけど、Hibernateで排他制御を任せると、
複数サーバでの運用って事実上無理にならない?

JavaVM1つでしか動きを保障できないようなフレームワークが
なぜこんなに流行るのかわからない。

506 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 22:58:32 ]
複数サーバの並列運用が必要な案件がそんなにないからじゃないかと。
大規模案件はやっぱりEJBの出番なんでしょう。

507 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 23:18:00 ]
>>505
普通にHibernate経由でDBロック取ればいいじゃん。
API提供されてるし。

>>506
なんでEJB?


508 名前:デフォルトの名無しさん mailto:sage [2006/12/07(木) 23:24:00 ]
分散を最初から考慮しているってのは確かに大きいな。

509 名前:507 mailto:sage [2006/12/07(木) 23:33:33 ]
>>506
ちょっと喧嘩売ってるみたいな書き方になった…

補足すると、そもそも並列稼動の実装ってかなり設計に依存するから
安易に大規模案件=EJBを持ち出す意味がわかんないって話。

単純なスケールアウトの話で、VMをまたいだキャッシュの同期を
意図してたならHibernateでもいくつかサポートしてるキャッシュ実装があるよ。
※Coherenceとか

ま、JBossのEJBって話だったら別に変わんないか。


510 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 00:27:16 ]
>>505
Hibernateの排他制御は基本的に楽観的排他で、
UPDATE文発行するときに、検索条件に主キー+バージョンカラムの値をつけ、
UPDATEの結果が0だったら排他エラーにするものだよ
同期を取っているのはあくまでもDBで、JVMは関係ないと思うけど

2次キャッシュに対する更新は、たしかに複数サーバでの運用が問題になるが
そんなときはクラスタ対応のJBoss TreeCacheを使えばいい

511 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 01:02:00 ]
>>510
へー、そうなのか。勉強になった。
どちらにせよ、最近は状態を頑張って各ノードで通信して同期するより、
なるべく状態非依存にしてスケールアップする方向に進んでるから、
Hibernateの挙動はあまりいくないと思う。

512 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 01:33:17 ]
>>511
参考までに聞きたいのだが、状態を持たない場合、複数画面の排他制御ってどうやってやるのが普通なの?
主キー+バージョン値だけを保持して、バージョン値も条件に入れて再SELECTとか?
ただこの場合、関連するEntityを同時に再SELECTする場合、全部のバージョン値を保持しなきゃいけなくなるよね
自分もHibernate使っていたとき迷ったのだが、結局HttpSessionに保持してmerge以外に良い方法を思いつかなかった

513 名前:デフォルトの名無しさん mailto:sage [2006/12/08(金) 02:15:47 ]
>>511
Hibernateの挙動というよりは、単に2次キャッシュを使わなければ良いだけでは?
OptimisticLockも2次キャッシュ同様にデフォルトでは有効でないから
そこに文句をつけるのは違うと思う。

> どちらにせよ、最近は状態を頑張って各ノードで通信して同期するより、
> なるべく状態非依存にしてスケールアップする方向に進んでるから、

これ、そうなの?クラスタ系プロダクトの信頼度が上がってくるのはこれからじゃないのかな。
あと、下のケースはスケールアウトと間違えてない?


514 名前:デフォルトの名無しさん mailto:sage [2006/12/12(火) 18:52:08 ]
ibatisでカスタムタグを作ることってできますか?



515 名前:デフォルトの名無しさん mailto:sage [2006/12/13(水) 23:35:57 ]
>>514
OpenSessionInViewパターン的な仕組みとやりとりするカスタムタグを
作るってことなら、そんなに悩まずできるんじゃないの?
iBatisだろうとHibernateだろうと生Jdbcだろうと。

おれなら半日で作るね。



516 名前:デフォルトの名無しさん mailto:sage [2006/12/13(水) 23:44:54 ]
半日もかかるのか。イラネ。

517 名前:デフォルトの名無しさん mailto:sage [2006/12/14(木) 00:06:28 ]
タグ作って、テストして、プロジェクトの他メンバーに仕様を伝えるためのドキュメント作って・・・
としていたら半日なんてあっという間。

518 名前:デフォルトの名無しさん mailto:sage [2006/12/14(木) 01:45:16 ]
ibatisの設定ファイルに書くタグのことじゃね?

519 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 11:03:54 ]
gcの対象って、インスタンスだけじゃなくてクラスも対象なんですか?
クラスに定義してあるメソッドの実行コードもメモリから消えちゃう?

Cをやっていたとき、実行コードはメモリのtextにロードされるから、
textエリアは書込み禁止なはずなので・・・、javaでは実行コードはtextに書かないのかな


520 名前:デフォルトの名無しさん mailto:sage [2006/12/15(金) 12:26:48 ]
>>519
スレ違いなので簡単に。詳細は別スレで語って。
ttp://www.nminoru.jp/~nminoru/java/class_unloading.html

521 名前:デフォルトの名無しさん mailto:sage [2006/12/23(土) 01:54:12 ]
JBOSSなんて実運用で使ったら軽く死ねるよ。
コストかけても商用のEJBフレームワークを採用した方が、ロードバランサも不要で安くつく。

syslogやsnmpで監視しても、最後はopenviewのSQL DBに突っ込んでるしねえ。
加工することを考えると、SQL DBにログを突っ込むのは悪くはない。
syslogのテキスト処理しか出来ないperl廚が困るだけでしょ。DBIぐらい覚えろよと。

522 名前:デフォルトの名無しさん mailto:sage [2006/12/23(土) 02:10:02 ]
GlassFishでいいんじゃね?

523 名前:デフォルトの名無しさん mailto:sage [2006/12/23(土) 04:50:43 ]
>>521
知ったかぶり乙。

524 名前:デフォルトの名無しさん mailto:sage [2006/12/23(土) 08:45:01 ]
ほんとに意味不明だなw
ある種の才能。



525 名前:デフォルトの名無しさん mailto:sage [2007/01/08(月) 12:20:52 ]
HOS

526 名前:デフォルトの名無しさん [2007/01/17(水) 22:43:07 ]
取得する列を可変にしたいのですが、iBatisではどうやればいいですか

527 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 00:00:12 ]
DBの型とJavaの型マップのデフォルト値を取得する方法ないでしょうか?
java.sql.Connection#setTypeMap で型マップの上書きができるのは、分かったのですが・・・。


528 名前:デフォルトの名無しさん mailto:sage [2007/01/18(木) 02:01:48 ]
フレームワークとは直接関係ないんだけど、良いDAOの作り方というのが
いまいちわからん。
検索条件が複雑なユースケースがたくさんの場合、メソッドの引数やDTO
だとすげー煩わしくなってくるんだけど、みんなはどう対応してる?

529 名前:デフォルトの名無しさん [2007/01/18(木) 23:59:20 ]
>>528

検索はほぼDTOですね。。
あとで変更があっても影響範囲極小にできるから

530 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 01:26:04 ]
DTO でもめんどいと、もう Map しかないよね。

うぇーって感じだけど、DTO 書きが面倒というような規模
(ビューからDAOまで自分一人とか)なら、Map は割と現実的な
解だと思ってる。

531 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 01:29:16 ]
SELECT文からDTOを児童生成するようなフレームワークって無いのかな?
Velocityとjava.sql.ResultSetMetaData使えば結構簡単に作れそうな気がするけど。
一時期作ってたけど、
同僚のマの人がせっせこ作ってくれるんで途中で投げた。

532 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 01:58:10 ]
Hibernate以外でDAOでオブジェクトを生成するとき、みんなどこまでの階層を読み込んでる?
基準とかあるのか?

533 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 02:01:17 ]
あるあるww

534 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 12:18:29 ]
Mapが面倒ならRowSet使うのがいいと思われ

JPAとかこれから普及すると思うが、テーブル単位で扱うのが常識なのだろう
RDBに慣れた人ならjoinつかって重複するデータ部分も生成してすべてOneToOneでつなげれば今までと同じように使えるし
既存コードからの変更はわりと容易



535 名前:デフォルトの名無しさん [2007/01/19(金) 19:14:25 ]
もれのORマッピングに関しての認識がどうも間違ってるみたいなので教えてください。

ORマッピングフレームワークにはHibernateやToplinkなどが一昔前からあり、
最近JPAというものが登場し、JAVAEE5、SE6にも取り込まれている。JPAはEJB3.0でも使用されている。
JPAはコアの部分にtoplinkを使っていてtoplinkエッセンシャルと呼ばれる?
なんかよく分かんないのですがあってます?

536 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 20:00:39 ]
あってない
まずJPAはEJB3.0の中のひとつ
ただし、JavaSEでも使えるように独立している

toplinkはJPAの実装のうちのひとつででリファレンス実装となっている
サーブレットコンテナのリファレンス実装だったTomcatと同じような位置づけ

537 名前:535 [2007/01/19(金) 20:32:39 ]
>>536
ありがとうございます。
なんとなく理解できました。
EJB3.0の中にいたJPAは独立可能なのでSEにも加えられて、
toplinkとJPAの関係は Myfacesとjsfみたいなもんというわけですね。
めもめも

538 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 21:13:28 ]
JavaSE6にJPAは取り込まれてない

539 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 23:56:48 ]
すみませぬ。質問させてください。
取り出したレコードがコード値(性別とか)を保持している場合、0 -> 男性 などのマッピングはいつ行えばいいのでしょうか。
あとDTOにコード値とマッピング後の文字列、両方を保持するのが一般的なのでしょうか。

540 名前:デフォルトの名無しさん mailto:sage [2007/01/20(土) 00:03:15 ]
そのへんは突き詰めるとSEXSテーブルを作ってSexオブジェクトを作って…。みたいになりそうだ。
enumうまく使えたら良いのかな?

541 名前:デフォルトの名無しさん [2007/01/20(土) 01:15:37 ]
>>539

DTOにマッピングの文字列を取得するメソッド作成するかな。。
確かにこういうの迷いますよね。。

542 名前:539 mailto:sage [2007/01/20(土) 11:34:33 ]
SQLで結合してしまえばいいともおもうのですが(iBatis使ってるんで)顧客とかって結構コード値で管理してるデータが多いじゃないですか。
SQLのFromにだらだらと並べるのも嫌だし。。。
今のところマスタ系のデータはグローバル領域で保持して、View(jsp)でマッピングするという流れになっています。

543 名前:328 mailto:sage [2007/01/21(日) 02:02:35 ]
マッピングはviewじゃないかな?

544 名前:デフォルトの名無しさん [2007/01/21(日) 21:32:58 ]
viewかー



545 名前:某スレ167 [2007/01/22(月) 01:48:20 ]
んと、今まではシコシコと自作でDAO書いてたのですが、DI×AOPの導入と一緒にフツーのORMも勉強してみようと思い立ちました。

HibernateはどーしてもあのHQLとXDocletが好きになれず、Seasar2+S2Daoをしばらくいじってみましたが、Spring Remotingにかなりクラっと来て、他のORMももう少し深く調べてみようと思いました。
PHPな人でもあるので、両方で(ある程度)知識を共用できるORMということでS2Daoとblanco、DI×AOPするならS2Daoという筋道で選択しましたが、Hibernateにコストをかけるべきかで少々迷っていますが、どんなモンでしょう?

今のこころは、とりあえずはDbUtilsやSpringJDBCを手早く身に付けておいて、続きはJPAというふうにしたほうがいいかな?、と思っています。
今日買ってきた「Spring2.0入門」を読んだ限りでは、ActiveRowMapperが正式リリースされればSpringJDBCはかなり使い勝手がよいという印象を持ちました。

自分でいくつかDAOを書いた限りでは、結局1:Nマッピングや複雑なビューの生成は自分で書くしかない、って思ってしまうんですよねぇ。
設計がまずいだけかもしれませんが、結局はそのあたりもビジネスロジックとは完全には無縁ではいられないのだから、1テーブル/1レコードをそのまま扱うDAO/DTOを基底クラスとして作って、
テーブル同士の関連は(ある程度のビジネスロジック込みで)ファサードとして纏める、なんてことをしてしまっています。
もっとも、これはあまり深くまで勉強せず、かじったどころか舐めた程度でしかない者の浅はかな感想かもしれませんが……。

追伸
それでもSeasar2の自動コンポーネント登録/自動アスペクト登録にはまだ魅力を感じています。ありゃ便利です。
人はこうやってSeasarの重力に魂を引かれていくのか……(苦笑)
ま、これは本当の余談ですけどね(^^;

546 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 02:07:54 ]
S2/S2DAOはいいと思うよ。
Hibernateを今から覚えるぐらいなら、JPAを覚えて、
HibernateはJPA実装として使うという位置づけでいいんじゃないか?

547 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 18:59:48 ]
>>545
Hibernate使ってる身としては、もう1:Nマッピングとかを自分で書く気にはなれないな
DBの定義に関する情報は、フレームワークがスキーマ読み込んでクラスまで自動作成すべき
たしかにHibernateの学習コストの高さはネックだけど、
JPAが出たおかげで、マッピング周りはかなり簡単になったと感じてる

548 名前:デフォルトの名無しさん mailto:sage [2007/02/08(木) 10:01:15 ]


549 名前:デフォルトの名無しさん mailto:sage [2007/02/18(日) 16:37:27 ]
え?

550 名前:デフォルトの名無しさん [2007/02/19(月) 22:28:19 ]
iBatis
abatorConfigでsqlMapを自動生成するとかなりいろんな条件いれてくれたり、XXXExampleとか作られるのがうざいんだけどなんとかならない?

551 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 13:02:37 ]
Hibernate...
いちいち関連を定義しないと外部結合できないのはなんとかならんのか。


552 名前:デフォルトの名無しさん mailto:sage [2007/02/24(土) 14:48:47 ]
>>551
それがあるから、Entityに関連書きまくることになるんだよなぁ

553 名前:デフォルトの名無しさん [2007/02/25(日) 01:51:51 ]
>> SELECT文からDTOを児童生成するようなフレームワークって無いのかな?

DBFluteとDolteng はSQLからS2Dao用のDTOを生成してくれるよ

554 名前:デフォルトの名無しさん [2007/02/25(日) 12:14:08 ]
>>553
そりゃあもちろん、SELECT文はDTOを出産しない>児童生成



555 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 10:36:09 ]
認知してよ!

556 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 12:29:29 ]
>>551
SQLを意識するならHibernateを使わないほうが良いと思われる

むしろXMLで定義するだけでオブジェクト間関連を永続化してくれるのはありがたいと思え

557 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 15:47:06 ]
Hibernate は先にオブジェクトがあって、
永続層がたまたまRDBでしたって感じで使わないと
無駄に時間かかるだけだな・・

何故俺の行く先はロクに正規化もされてない神聖不可侵な
クソスキーマがアプリオリに存在してるのばかりなのはなんでなんだぜ。

558 名前:デフォルトの名無しさん mailto:sage [2007/02/26(月) 15:53:29 ]
>>557
っ「転職」

559 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 23:38:39 ]
>>558
たぶん、>>557の転職先でも、同じようなDB設計になるはずw
つまり、それは運命www

560 名前:デフォルトの名無しさん mailto:sage [2007/02/27(火) 23:43:16 ]
>>556
外部結合と、SQLを意識するしないは関係ないよ。
(SQL特有のものだったら、そもそもHQLにouter joinなんて単語は出ない)
単に機能が不完全なだけ。実装が面倒だったんだろ。
内部結合は関連なくてもできるしね。


561 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 01:21:12 ]
HQLでのouter joinとかって苦肉の策だと思うのは俺だけか?
普通なら結合条件つけなくていいと思うんだが・・

562 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 02:44:43 ]
>>561
FETCH JOINで使ったり、SELECT new ...()で外部結合テーブルのカラムを含めるときに
普通に使ってるが、なぜつけなくていいと思ったの?

563 名前:デフォルトの名無しさん mailto:sage [2007/02/28(水) 22:16:10 ]
>>562
お前、全然オブジェクトで考えられてないのなwww

564 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 00:19:50 ]
>>563
考えられてないでいいけど、なぜつけなくていいと思ったの?



565 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 00:35:19 ]
>>564
オブジェクト中心に考えてるとつけなくていいから

566 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 00:36:28 ]
>>564
HibernateってORマッピングフレームワークだぞ。
Object-RDBだぞ。
Object中心に考えないとおかしい使い方になる

567 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 01:08:45 ]
FETCH JOINは通常パフォチューで使うもので、オブジェクト中心とか関係ない
N+1セレクト問題を避けるため、関連を全てLAZYで定義して
HQLのFETCH JOINを使うのがHibernateの常套手段
また、レポートクエリをEntityのみで無理矢理行うのは馬鹿げている
HQLならSELECT new、またはSQLQueryで普通にSQL発行すればいい
全てをEntity中心に行うのは無理で無駄。
Entityは排他制御+登録・更新処理で威力を発揮する。
レポート機能はSQL中心に考える。適材適所で使えばいいんだよ

568 名前:デフォルトの名無しさん [2007/03/01(木) 11:58:30 ]
>567
俺ならレポート部分はJDBC使う

569 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 11:59:41 ]
> N+1セレクト問題を避けるため、関連を全てLAZYで定義して
> HQLのFETCH JOINを使うのがHibernateの常套手段
どこかに資料ありますか?

570 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 15:08:26 ]
>>569
Hibernate in Action

571 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 21:21:24 ]
そういやiBatis in Actionの訳本出ないかな〜

572 名前:デフォルトの名無しさん mailto:sage [2007/03/01(木) 22:31:13 ]
レポートとか統計取るときにオブジェクトで考えてもおかしくなるだけだもんな。

そーゆー時には統計に優れれた言語であるSQLを使うのがやっぱり正しい。

573 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 09:18:32 ]
RDB-Objectマッピングフレームワークの方がよくね?

574 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 12:31:06 ]
つまりJava以外の話をしたいってこと?



575 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 13:11:16 ]
O/R でなく R/O になってるところがポイントじゃね?
Object の永続層に RDB 使うためのマッピングフレームワークではなく、
RDB が先にあって、プログラミング言語から簡単に使うためのフレームワークなのでは。

576 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 13:45:57 ]
DBを最初に考えて使いやすいものを
となるならJDBCRowSet使えばいいじゃない

577 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 15:25:12 ]
データ構造はRDBのER図+正規化で決定するけど、プログラムはオブジェクト指向でやりたいのよ

578 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 15:52:08 ]
なら普通にJPAでいいだろ

579 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 15:59:26 ]
JPAはObjectありきじゃね?

580 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 16:35:48 ]
俺もRowSetにいっぴょ。

データをハンドリングする部分がオブジェクト指向で書ければ、
データそのものは生っぽくてもいいよ。


581 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 16:47:55 ]
>>579
先にDBを定義しておいても使えるし、先にクラスを定義しておいても使える
どっちがメインかなんて意味なさ杉

582 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 17:09:31 ]
おれはオブジェクト図を先に作るほうだけど、
ER図でどうなるかとか、SQLで結合しやすいかなどは考えながらやってるよ。
そういう意味じゃO-R-Oマッピングくらいか。

HQLやEJQLを使えば何でもできるというのはなんか違う気がする。
こいつは必要悪とは言わないがある種の妥協なんだと思う。

583 名前:デフォルトの名無しさん mailto:sage [2007/03/02(金) 23:07:58 ]
iBatis
テーブルごとにsqlMapを分けてるんだけど、
呼び出し側でnamespace意識して呼び出すことってできないの?


584 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 01:24:38 ]
RDB使う時点で、性能やコーディングやりやすさはRDBの方に制約が大きいから、RDBの比重を大きくしたほうがしたほうがいいと思う。



585 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 01:06:34 ]
こんな過疎スレがあったとは・・・・・・

586 名前:デフォルトの名無しさん [2007/04/12(木) 19:09:54 ]
hibernateなんだけど、one2many to many なテーブルをone2manyなBeanにする方法ってありますか?
具体例を挙げると、ショップとカタログと商品のテーブルがあるとすると
カタログテーブルはショップIDと商品IDのユニークな組み合わせを持ってて、他にカラムは無い状態。

実際はあるオブジェクトに対してカスタム属性を付加するアプリなんだけどね。

587 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 01:36:02 ]
>>586

Chapter7.Association Mappings
www.hibernate.org/hib_docs/v3/reference/en/html/associations.html#assoc-bidirectional-join

試してなくて申し訳ないんだけど、ここに書いてある「join table」使ったマッピングじゃだめ?

588 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 00:43:39 ]
586って、いわゆる many-to-many だと思うんだけど、違うの?

589 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 02:15:57 ]
どう見てもただの many-to-many です。

590 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 19:00:53 ]
カタログがリンクテーブルっぽいけど、商品から見たショップは1だろうからmany-to-manyではないんじゃないの?
よくわかんないけど。

591 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 19:17:24 ]
>>586は「one2many to many 」って言ってるじゃないか
それがなんだかわからんが

592 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 19:49:12 ]
カタログテーブルの商品IDがユニークなんだろ

593 名前:586 mailto:sage [2007/04/17(火) 18:45:14 ]
ただのmany-to-manyのようでした。
カタログテーブルにあたるビーンを作ってしまったのが混乱の元のようで。

594 名前:デフォルトの名無しさん [2007/05/10(木) 00:19:39 ]
とっぷりんくあげ



595 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:25:45 ]
データベースのコード値ってプログラムではどういうふうに管理してますか?
定数だけを集めるクラスを作ったり、列ごとの列挙型のクラス作ったりするのが普通なのですか?

596 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 18:34:07 ]
ご自由に






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<245KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef