トップページtech
983コメント363KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
●各種Framework
[Torque]
http://db.apache.org/torque/
http://homepage1.nifty.com/kingyoshi/computer/jakarta/torque.htm

[HYBERNATE]
http://hibernate.bluemars.net/1.html

[CasterJDO]
http://www.castor.org/jdo.html
http://www-6.ibm.com/jp/developerworks/java/021025/j_j-castor.html

[ObJectRelationalBridge (OJB)]
http://www.terra-intl.com/jakarta/ojb/

●コネクション・プーリング
[Jakarta Commons DBCP]
http://jakarta.apache.org/commons/dbcp/
(Jakarta Commons DBCPを使ってみよう。)
http://taka-2.com/jclass/DBCP/
(DBCP利用法 from "『カモン!Commons!』 Jakarta Commonsを使ってスキルアップ" (2002/09))
http://www.mobster.jp/wiki/index.jsp?pid=Commons#i10
0348デフォルトの名無しさんNGNG
>>347
EntityBeanは、リモートやトランザクション制御できたとしても
うれしくないやろ。
つかえない技術ちゅーことが、一般的な認識になったってことでしょ。
0349デフォルトの名無しさんNGNG
>>348
ばかやろうばっかだな

「EJBはRDBマッピングの技術じゃない」って何回言えばわかるんだよ馬鹿
EJBはこのスレにはカンケーないんだよバカ
0350デフォルトの名無しさんNGNG
>>349
だからEJBを使ってそういうことをやろうとすると云々ってことだろ。

信者ウゼェよ
0351デフォルトの名無しさんNGNG
SessionBeanとORマッピングの組み合わせはアリだと思うんだが…
分散にも対応できるし。

EntityBeanは面倒くさいよ、なんか。
0352デフォルトの名無しさんNGNG
最近いろんなところで言われてるが
SessionBean+JDO
っつ組み合わせに流れつつあるみたいだなや。

EntitiyBeanは問題外だと思うけど、JDOもそんなにいいかなぁ…。
なんかどのORツールもしっくりこない。
0353デフォルトの名無しさんNGNG
ORマッピングツールは100%全部それでまかなえることを
期待しちゃだめなんだろうな、きっと。
60%くらいの自動生成でラクチンして、後は手書きでSQL、
くらいの心構えでやるのがよさげ。
とかいいつつ、俺は一度もマッピングツール使ったことないけどね・・・
0354デフォルトの名無しさんNGNG
ああ、RDBを捨てられたらいいのにねえ…
0355デフォルトの名無しさんNGNG

スキーマの変更に強くないと、マッピングって言えないよな

今までのマッピングツールってただ単にSQL文を隠してるだけだと思わない?

そんなことさ、実際普通のプログラマはやってたわけよ

自動生成っていうのはいいけどオブジェクト指向を適用するのはソコじゃないんだよな

それからさ、データベース特有の機能使えないんだったら

プログラマーからどのDB使ってるのか完全にわからなくして欲しい


っていうか、DB側もオブジェクト指向に歩み寄ってきて欲しい←非常に重要
っていうか、DB側もオブジェクト指向に歩み寄ってきて欲しい←非常に重要
っていうか、DB側もオブジェクト指向に歩み寄ってきて欲しい←非常に重要
0356デフォルトの名無しさんNGNG
今時、どんなに小さいシステムでもOracle以外は認めないとか酔狂な事を言っている
企業がゴマンとあるからな。信頼性の問題云々だと。
そういう会社に限って、保守に金掛けてなかったりするんだけど。

というのは置いておいて、Oracleがオブジェクト型になれば、きっとみんなそうなるんだろ?
0357デフォルトの名無しさんNGNG
ObjectStoreでも使っとけ。
0358デフォルトの名無しさんNGNG
なに?
ObjectStoreってObjectの丸投げモロ出しできるの?
いいねぇ
でも、そうなると言語間でやり取り大変そうだ

やっぱ究極はXMLが高速になれば・・・・
0359デフォルトの名無しさんNGNG
今Torque試してるけど、Viewと組み合わせれば
パフォーマンス的にも問題なく使えるね。

まあ、時代はJDOへと移るんだろうけど…
0360デフォルトの名無しさんNGNG
Torqueについて質問させてください。

ORDER BYを使ったデータの取得を行おうと思い、以下のコードを試したのですが

Torque.init("Torque.properties");
Criteria c = new Criteria();
c.addAscendingOrderByColumn(MytablePeer.Field1);
List list = MytablePeer.doSelect(c);

doSelect()の時点でNullPointerExceptionが発生してしまいました。
addAscendingOrderByColumnを使わずに実行した場合は問題なく動きますので
Torque.propertiesの設定には間違いはないと思います。
addOrderByColumn()を使った場合でも同様の現象が出ました。

DBはMSSQL2000 Torqueは3.1 OSはWindows2000です。
どなたか同様の現象がでた方いませんか?

http://www.mail-archive.com/[email protected]/msg12713.html
おそらく同じ現象かと
0361デフォルトの名無しさんNGNG
>>360
あなた、3月ぐらいにJakartaの掲示板に同じ質問しました?
今ググッて見たらあなたと同じような現象らしいです
その方も、同じメーリングリスト指していました
やっぱ、バグなんですかね?
何か特別な、スキーマでしょうか?
差し支えなければスキーマ定義教えてください
0362361NGNG
追加で質問なんですが
ソート対象のカラムは[NOT NULL]定義になっていますでしょうか?
0363360NGNG
>>361
<table name="Mytable" idMethod="none">
<column name="MemberNo" size="4" type="VARCHAR" />
<column name="GroupCd" size="3" type="VARCHAR" />
<column name="Name" size="24" type="VARCHAR" />
<column name="Y-Cd" size="2" type="VARCHAR" />
<column name="F-Flg" type="BIT" />
<column name="HolD" type="REAL" />
<column name="Mail" size="50" type="VARCHAR" />
</table>

特別なことをしているとは思えないのですが。

jakartaの方は私ではないです。
今月のJavaWorldを読んで、使ってみようかと思って。
0364361NGNG
わかりました

私の方も>>363のスキーマ定義で
Win2000+MySQL+J2SDK1.4.1.02
で試してみます(MS SQLは持っていないので参考になるかどうかわかりませんが・・・)
Torque最近使ってないので思い出しながらやってみます
0365360NGNG
>>364
MySQLで実行した場合は成功しました。

また上記のスキーマ定義で、MemberNoにrequired="true"を追加して
実行しましたが、やはり失敗でした。(エラー個所もいっしょ)

やはりバグですかね・・・
0366361NGNG
>>365

やってみました
んん?
なんでかな?MySQLでエラーでたw
addAscendingOrderByColumnのとき出るね

で、おれもEclipseなんだがaddOrderByColumnのときは
「Criteriaにこのメソッド使うべきではない」と警告でます
0367デフォルトの名無しさんNGNG
Oracleでも出るねぇ。
Win2000+Oracle8.1.7+J2SDK1.4.2
Torqueは3.0.2だけど。
0368360NGNG
>>366
そういえばbuild-torqueのjdbcも失敗します。
失敗というかテーブルの情報が取得できないみたいです。
(空のschema.xmlが作られる)

上記のスキーマもDBから作ったんじゃなくて、エディタで作ったやつですし。
この辺が原因かもしれないです・・・

MySQLだと問題ないですよ?4.0.2、Windows2000ですけど。
0369デフォルトの名無しさんNGNG
>>368
そういえばって…
0370361NGNG
てか、torqueってcreate-dbとかもDBによってエラーになるし・・・
いったいお前らは何をもってマッピングと言っているのか?
Jakartaの中でも最悪のメンバーでやってるんだろうな
そうか、タービンから独立したわけじゃないんだ
タービンからはじき出されたのですね
0371デフォルトの名無しさんNGNG
>>370
とっくにJakartaからもはじきだされてますよ。
Apache DB Project
0372デフォルトの名無しさんNGNG
>>371
それは昇格なのか?
0373デフォルトの名無しさんNGNG
業務アプリをやっている香具師に聞きたいんだが、
JDOを使うと開発効率や保守性は上がるんだろうか?

...結果として一覧表的なものを求められる場合が多いので、
かえってJDOを使うと大変かと。
0374デフォルトの名無しさんNGNG
>>373
まだ、はっきり言って過渡期なのにJDO使うやついないだろ?
「今回は見送りましょう」ってなる
0375デフォルトの名無しさんNGNG
「一番インパクトのある仕様」
なぜ英語(カタカナ)にするのだ?
0376デフォルトの名無しさんNGNG
>>360
>>361
以前、DBAdapterの設定が間違えた時にそういう現象(ORDER BYでおかしくなる)が起きました。

生成したBase<TABLE名>PeerクラスのDATABASE_NAMEにセットされているデータベース名で
Torque.propertiesで設定するtorque.database.<データベース名>.adapterの値を設定してなかったため、
BasePeerクラスのcreateQueryやcreatePreparedStatementメソッド内の
「dbMap.getTable(table)」のコードの部分でDatabaseMapオブジェクトが取得できなくて例外(NullPointerException)がスローされていました。

「ORDER BY」以外で動くのは単に「dbMap.getTable(table)」のようなコードが他の句の生成部分で使用されていないから大丈夫なだけだったようです。

・・・こんな簡単な問題ではない?
0377デフォルトの名無しさんNGNG
私の場合はTorqueでLimitがエラーがでてできなかったです。
んで、仕方なかったのでHibernateに乗り換えました。
日本ではTorqueが雑誌などで特集やってて人気あるけど
アメリカではHibernateの方が人気ありますよね。
0378デフォルトの名無しさんNGNG
http://esenden.com/rank/ninki/ranklink.cgi?id=groovy
0379デフォルトの名無しさんNGNG
hibernateの方が相当いいよ
0380デフォルトの名無しさんNGNG
>>379
そうか、今日ちょっといじってみるから
わからんことあったら教えてね マジで
0381380NGNG
すいません早速、Hibernateの質問なんですが
プロパティーファイルとスキーマ定義XML、スキーマのBeanクラスをとりあえず作りました
この先どうすればいいのでしょう?

インストールフォルダのbuild.xmlをANTで起動したらHibernateのフォルダできちゃった。
これってHibernateのためのbuild.xmlファイルみたいですね・・・
Torqueと同じような感じだと思ってやってしまいました

このHibernateってクラス自動生成とかっていうのはないのですかね?
とりあえず、ためしにこのままコード書いてみたのですが
Sessionはどこで取得するのでしょうか?
Sessionが無いとsave()出来ないみたいなので・・
0382380NGNG
えーと
Sessionの取得方法わかりました

>SessionFactory sessions = cfg.buildSessionFactory();
>Session session=sessions.openSession();
これですね↑

で、いいとこまで行ったのですが
org/dom4j/io/SAXReader
これが含まれたJarファイルはどこで手に入りますか?
なんかコレが無いってエラーでます
0383380NGNG
dom4jだからlog4jと出所がいっしょなのかな?と思って
Jakarta行って見たのですが
やっぱないですね・・・

っていうかパッケージ名なんて一意のものだから
Javaのパーケージ検索用のディレクトリサービスあってもいいと思うんだけど・・・
0384380NGNG
あ、ありました
単純に
http://dom4j.org/
で、発見したよん
0385デフォルトの名無しさんNGNG
>>380
Hibernateの配布ファイルの中に入ってない?
lib/dom4j.jarってファイルがあるはずだけど。

Torqueは雑誌のサンプル読んで「これ便利か?」って疑問だったけど、
そんなにいいものなのならこれを機に試してみようかな。
0386380NGNG
いや、もう少しなんですが・・・

「hibernate_unique_key」っていうテーブルが無いって言うエラーでます

やっぱ自動生成しないといけないんじゃないでしょうか?
おしえてください
0387380NGNG
>>385
ありがとうございます
すんごい、バカでした僕
あれから、自分で気づいたんですが・・・
13MBのdom4jダウンロードしてしまった
なにしてんだか・・・

>>386にも書いたのですが
SQL自動生成ツールは無いのですかね?
「hibernate_unique_key」ってテーブル自分で作ってもいいんですが
どうせ、スキーマ定義わからないのでどうすりゃいいのか・・・
0388380NGNG
一応、コレの%HOME%\demo.batは正常に動くのでデータベース設定等は正しいみたいです
0389380NGNG
ああ、setupコマンド打てばいいのか・・・
0390380NGNG
う〜
エラーは出なくなってプログラムは正常終了したが
データベースに書き込めてない・・・なんでだろう
0391380NGNG
session.save(obj);
session.flush();
コレだけじゃダメなんですか?
0392380NGNG
げー、なんか
「hibernate_unique_key」ってテーブルだけどんどん書き込まれて
肝心のオブジェクトの方のテーブルは書き込まれていない・・・なんじゃコレ
0393デフォルトの名無しさんNGNG
なんか380の独りチャット状態になってるな。
このままだとつまらないので情報提供。
Hibernate2のドキュメントの翻訳をしているところをハケーン。
ttp://www.ozacc.com/library/
まだ4章までだそうな。ありがたく読ませていただきます。
0394380NGNG
>>393
ありがとうございます
いちおう、そこは参照してもらってます
いいトコまでいってるんですがね・・・
0395380NGNG

コードの書き方は、IDEの保管機能とかいままでのTorqueとかの経験で勘で出来るんですが

肝心の作業手順っていうか作業の流れがわかりません
↑これさえはっきりわかれば何の問題も無いのですが・・・
0396デフォルトの名無しさんNGNG
>380
transactionをcommitしろよ

Session session = sessaionFactory.openSession();
Transaction tx = session.beginTransaction();
SomeObject object = new SomeObject();
session.save(object);
tx.commit();
session.close();
0397396NGNG
Transactionオブジェクトをつくりたくないなら、

session.flush();
session.connection().commit();
session.close();

でも、いいぞ。
0398デフォルトの名無しさんNGNG
>387
SchemaExportツールは試したか?

java -cp hibernate_classpaths net.sf.hibernate.tool.hbm2ddl.SchemaExport options mapping_files
0399380NGNG
>>396
ありがとうございます
でも、ダメでしたエラー内容も変わらず・・
エラー内容::net.sf.hibernate.HibernateException: SQL update or deletion failed (row not found)
これからデータ入れるのに「(row not found)」なんてあたりまえじゃん何だコレは・・・

>>398
ありがとうございます
SchemaExportは自分で気づいてつかってみました
で、setupコマンドは上手くいくんですが
それ以外のコマンドの使い方がわからず・・・
0400デフォルトの名無しさんNGNG
>>380 がんばって。参考になります。
0401デフォルトの名無しさんNGNG
>>380
なんでそんなに手こずるのさ。

SessonFactory sessions = new Configuration()
.addClass(Item.class)
.buildSessionFactory();

Item item = new Item();
item.setName("Item name");

Session session = sessions.openSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
session.save(item);
tx.commit();
} catch (HibernateException e) {
if (tx != null) {
tx.rollback();
}
throw e;
} finally {
session.close();
}
0402380NGNG
>>401
すいません
いや、ですから
コードの書き方はわかるんですが

開発の手順がわからないのです

スキーマのXML、スキーマのクラス作る
SchemaExportツール叩く→なんかしらんがDB上にテーブル出来上がってる
メインのプログラム作る
動かす
エラー::net.sf.hibernate.HibernateException: SQL update or deletion failed (row not found)
コミットのところでエラーになります
なので、もう一度一からやりたいのですが・・・
そもそも手順がこれでいいのかどうか疑問でして・・・
0403デフォルトの名無しさんNGNG
>>380
ttp://hibernate.bluemars.net/hib_docs/reference/html/or-mapping.html#or-mapping-s1-4
generatorの指定をidentityもしくはsequenceにするとすんなりいく予感。

0404401NGNG
>>402
それはスマンかった。
俺は手っ取り早く、手動でテーブル作っちゃってるからSchemaExportなぞ
使ったことも無かった。

今試してみたが、以下の手順で問題無くデータを格納できたぞ(PostgreSQL)。
*.hbm.xml作る
*.java作る
$ java net.sf.hibernate.tool.hbm2ddl.SchemaExport classes/*.hbm.xml
$ java net.2ch.Test

以下のようなシンプルなテーブルでもエラー出ちゃう?
ひょっとしてマッピング内容に起因する問題だったりして。
CREATE TABLE Person (
person_id SERIAL PRIMARY KEY,
name TEXT NOT NULL
);
0405デフォルトの名無しさんNGNG
DBのカラム名を日本語にしちゃった人は
ここらへんにでてくるMapping-Frameworkは
使えないと思っていいんでしょうか?
0406デフォルトの名無しさんNGNG
middlegenとかも使ってみてくんねーかな。
0407デフォルトの名無しさんNGNG
>405
一個ずつ丁寧にマッピングを書いてやれば使えないこともない。
0408山崎 渉NGNG
(^^)
0409デフォルトの名無しさんNGNG
>>405
なぜに日本語のからむ?
0410405NGNG
お客様(DBの管理をする人)が
英語だとわかりにくいとおっしゃるので…
まあ二つ返事でOKしてしまった俺も俺だが・・・
0411デフォルトの名無しさんNGNG
普通そういう時はローマ字にするもんだが。
0412デフォルトの名無しさんNGNG
>405
英語のビュー作ってしのいどけ。

しかし、DBの管理人で分かりずらいから日本語にしてって、
すんげー低レベルな連中と仕事してるな。
そんなんで食っていけてうらやますい。
0413405NGNG
低レベルの話題ですいません。
DBっていってもアクセスだし…
管理人っていっても本職は事務だし・・・

0414デフォルトの名無しさんNGNG
ACCESSかよ…
MySQLかなんかで作り直してあげた方がいいんじゃないか?
0415401NGNG
>>414
MySQLで動いているシステムのデータをAccess(ODBC)経由で
閲覧してる、ってコトじゃないの?
0416_NGNG
http://homepage.mac.com/hiroyuki44/
0417デフォルトの名無しさんNGNG
>>360

もし、見ていたら確認してください

Web+DB PRESS(技術評論社)って言う雑誌のvol.15に
それの原因らしきものが書いてあります
P164参照してください
本屋行けばまだあるかも、もしくは技評のHPから
バックナンバー注文して
0418デフォルトの名無しさんNGNG
>>415
信じられんかもしれんがちょっとしたデータの管理にRDBMS使うと
いきなり高くなって予算取れないからってAccessそのもので管理する
ケースがあるんだよ。

まあ、部署内で閉じてて誰かがファイル開いてたりってのがすぐわかる環境だったら
正しい選択だとは思うんだが。
0419デフォルトの名無しさんNGNG

おい、取引先の担当さんよ!
PostgreSQLはそんなにダメですか?
MySQLはそんなにダメですか?
あんたの推してるOracleってそんなにいいんですか?
あなたの案件見ている限りじゃお金の無駄遣いですよ
そもそも、Oracle使えるんですか?
Oracle言ってみたいだけじゃないですか?
0420デフォルトの名無しさんNGNG
スレ違いだが。Oracle に払う金は安心料だからね。
安い、普通、ちょっと高め、高いの 4 つから選ぶとき、
値段しか判断基準がないとすればちょっと高いを選ぶのが人間心理。
0421デフォルトの名無しさんNGNG
>>420
なるほど。並・上・特上があったら上が一番売れる罠。>うなぎ・すし
0422デフォルトの名無しさんNGNG
MySQLも保守契約ってあるだろ?

PostgreSQLもSQAがあるんじゃない?

となると、知ってる名前じゃなきゃだめってことかなぁ?
0423 NGNG
>>419 ブランドの力をなめてはいけない。 ブランドはブランドを維持するために
莫大な投資と宣伝してるわけで…。

0424デフォルトの名無しさんNGNG
>>422
SQAじゃねえや、SRAのまちがいね。すんません。
0425デフォルトの名無しさんNGNG
>>423
やっぱ、あの暴力的なOracleの値段にくらくらきてしまうんですねぇ。
0426_NGNG
http://homepage.mac.com/hiroyuki44/hankaku07.html
0427デフォルトの名無しさんNGNG
>スレ違いだが。Oracle に払う金は安心料だからね。
金出せば安心なのか?
責任の所在料とかいうが、被害が出たときはOracleが出してくれる(た)のか?
不明な障害の時親身になって解決のサポートをしてくれる(た)のか?
サポート料とかいってパッチ料金だけなのじゃないのか?

まぁ、大体、みんな自分の財布から金がでていかないから
金を使いたがるんだよな。

予算の内、余った額はみんなに還元するプロジェクトでも
Oracle使うか?
0428デフォルトの名無しさんNGNG
まぁ、ここのスレはDBの機能はあまり使わず、
DBはストレージとして、ビジネスロジックは全部
アプリ側に埋め込むという開発が目的だから、
そういう使い方するだけだったらOracleはいらないな。

DBオブジェクトもテーブルと、インデックスぐらい
しか使ってないんだよね。さらに参照整合も使ってなかったり。

とスレのちょっとスレの内容の方向に戻してみる。
0429デフォルトの名無しさんNGNG
DBをストレージとしてしか使わないのって間違ってると思うな。
レイヤーの切り分けって重要だし、ストアドでやった方が簡単で速けりゃそっちを使う。
開発者の切り分けもしやすいし、DBでやるべき事をアプリでする必要ないじゃん。
こういう用途のフレームワークってないんだよね。だから自作するしかない。
0430デフォルトの名無しさんNGNG
>>429
ここのスレで、こういう意見を出す人もいるんだ。
オレもそうだよ、同意見だよ(ちょっと皮肉を込めていっただけ。)

DBはデータだけではなく、ビジネスロジックも一元化させ共有化
させる機能をもっている。

だから、トリガー、ビュー、ストアド、チェック制約、参照整合、
ユーザメッセージ(例外)等、DBの持つオブジェクト、機能を駆使して、
まず開発では、ビジネスロジック
 ・これを更新したら、あそこのデータを更新する、
 ・ここは指定値以下の数値しか入らないようにする、
 ・DBエラーもそれに関して全て作り、どのエラーかもメッセージとして(APに)返す
等をDBで定義し、APはできるだけ、
(擬似的にでも)1テーブル(ファイル)のI/Oの感覚で開発ができる作りが美しいと思う。

AP側の開発者も本来の業務(UIや、APレベルでのプログラムの最適化、高速化)
に集中できる。

他のDBMSの移行時に大変だ、という意見が出るが、それは大変でアタリマエ。
オレらはアプリケーションシステムを作っているのではなく
データベースシステムを作っているのだから。
開発されたDBを変えることの意義を分かっていなく、
DBMSの変更を簡単に考えるのはちょっと賛同しかねる。
0431デフォルトの名無しさんNGNG
>ストアドでやった方が簡単で速けりゃそっちを使う。
>開発者の切り分けもしやすいし、DBでやるべき事をアプリでする必要ないじゃん。
俺はまさしくその考えなので、業務ロジックは結構ストアド(PL/SQL)で
組んでいる。社内の基幹業務のDB製品を変えるなんてことは想定もしてない
せいもあるけどね。
最近のOO設計を前提、イコールDBはタダの箱、というJava雑誌等の論調には
正直戸惑っているなりよ…
0432デフォルトの名無しさんNGNG
なるほどねー。
ひとつの社内システムや基幹システムに長期間携わるのならそれもありかも。
でも普通にSIやってるといろいろなDBMSを短期間で扱わなきゃならないから
どんなDBでも同じように扱える方法をどうしても選んでしまうのも事実。
そこまでひとつのDBMSの機能を使い切るまでに至っていないのも現状。
0433デフォルトの名無しさんNGNG
DBサーバへのアクセスがボトルネックになるようなシステムで、
ビジネスロジックサーバ側でできることはなるべくしておくっ
てのは、アリじゃないのかね。規模が大きいシステム限定の話
ですが。

DBMSの差し替えが絶対に発生しないようなら、全部DB任せは
楽でいいけど。
0434デフォルトの名無しさんNGNG
たくさんのクライアント Web鯖等 ビジネスロジック鯖
以下省略        Web鯖等 ビジネスロジック鯖 DB鯖
            Web鯖等 ビジネスロジック鯖
            Web鯖等 ビジネスロジック鯖
            Web鯖等
            Web鯖等
            Web鯖等

こんなシステム、ありがちでしょ?
0435433=434=DB素人 JavaPGNGNG
DB鯖で、データの物理的なストレージへのアクセス周辺の機能と、
それ以外の機能を分散配置できるような賢い鯖ってあるのですか?
0436デフォルトの名無しさんNGNG
>>435
ビジネスロジックにデータ処理を持ってきたら持ってきたで
ネットワークへの負荷が上がるのが問題になると思うんだけど・・・

あと、DBMSの差し替えを気にしてるようだけど、DBMSの差し替えよりは
Viewやストアドを別PGで使いまわす方が発生頻度が高くない?
そういう事を考えるとDBMSの機能はフルに利用すべきだと思うよ。
※ORMを手軽に利用する気なら、Viewでゴリゴリは必須のような…

そもそも、規模が大きいシステムでDB鯖が貧弱な構成ってあんのかな?
ここ最近だったら、どこの大手もストレージ周りで稼ごうとするでしょ。

まあ、中小規模の開発だと結構ヤバイ構成を見かけるけどね。
0437436NGNG
あ、>>430-431で大体書かれてたのね。

いや、もうバリバリDBMSの機能は使いまくるべきだと思うよ。
Torque良く使うけど、更新系をORMに任せて参照系はViewで外部
切り出しのパターンで済ませてる。
それだと、チューニング時にDB管理者へそこら辺のメンテ振れるし・・・

正直結合する条件が一部変わったくらいで、Javaコンパイル→APPサーバー
再起動の流れはやってられん。
0438_NGNG
http://homepage.mac.com/hiroyuki44/
0439デフォルトの名無しさんNGNG
適当に流れ読んだが・・・

結局時代は、元に戻るのか?
0440デフォルトの名無しさんNGNG
>>439
DBのオブジェクト化がさらに進んでいけば、ガラっと変わる可能性は
あるけど今は過渡期だね。
0441デフォルトの名無しさんNGNG
ビジネスロジックをすべてDB側の機能で実装
(または、java との明確な切り分けが)できれば良いが、
ロジックがjavaとストアドプロシージャに分散すると、保守が大変。
そのうえトリガなんか絡んでくると、追いきれません。
保守できるドキュメント書いてね〜
テンアートニのセルベッサでは、
ビジネスロジックをPL/SQLで実装していたような・・・
0442デフォルトの名無しさんNGNG
>>439
「まずスキーマ定義ありき」なスタイルが根強くあるせいではないですか

Torqueとかのドキュメント見ると(良いか悪いかは知らんけど)アプローチが逆なようだ

0443429NGNG
意外と賛同者多いんでちょとビクーリw

>>432
うちはWebベースな業務系システム作ること多いんだが、
今のところOracle以外は使ったことがない。

オラクルマスターのゴールド以上がそこらじゅうにいるような
会社だから、他のDBで提案する事がありえないのもあるけど。

そうじゃなくても、業務で使う可能性が高いDBって、
Oracle、DB2、MSSQL、Sybaseくらいなもんでしょ?
運用中にDB移行なんて((((;゚Д゚)))ガクガクブルブル

>>441
トリガー仕掛けすぎは追うの大変だね。前に何でもかんでも
DB側でやりすぎて大変な思いしたことあるからよくわかる。

Javaのパッケージを機能単位で切り分けて、そこにリソースとして
ストプロやビューのSQLも突っ込んでる。びみょーにjarのサイズは
デカくなるが、運用する時にすぐ見つかって便利だよ。

若干スレ違いなのでsage。
0444デフォルトの名無しさんNGNG
> そうじゃなくても、業務で使う可能性が高いDBって、
> Oracle、DB2、MSSQL、Sybaseくらいなもんでしょ?
うちはPostgreSQLが多い。
あとはMySQL、Oracle、DB2、MS SQLServerがほぼ同率かな。
Oracleは高いからあまり使わない。
0445デフォルトの名無しさんNGNG
で、結局
ビジネスロジックをRDBMSで処理したがるのはオールドタイプ。
なんでもかんでもJavaで処理したがるのはニュータイプ。
ってことでいいか?

http://www.namazu.org/~satoru/misc/ggap.html
0446デフォルトの名無しさんNGNG
>>445
なんでもかんでもJavaで処理したがるのは単なる厨房
0447デフォルトの名無しさんNGNG
そもそもDBトランザクションはDBに任せればよいのではないかと思うのだが
EJBのセッション/トランザクションをなぜみんなそんなに有難がりますか?
■ このスレッドは過去ログ倉庫に格納されています