Java⇔RDBのMapping-Frameworkを語るスレ Vol.2
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGttp://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]
ttp://www.martinfowler.com/eaaCatalog/
詳細は、>>2以降に。
0002デフォルトの名無しさん
NGNG[HYBERNATE]
ttp://www.hibernate.org/
[Cayenne]
ttp://objectstyle.org/cayenne/
[Torque]
ttp://db.apache.org/torque/
[CasterJDO]
ttp://www.castor.org/jdo.html
[ObJectRelationalBridge (OJB)]
ttp://www.terra-intl.com/jakarta/ojb/
[iBATIS - SQL Maps]
ttp://www.ibatis.com/common/sqlmaps2.html
[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/
0003デフォルトの名無しさん
NGNG[Jakarta Commons DBCP]
ttp://jakarta.apache.org/commons/dbcp/
[c3p0 : JDBC DataSources/Resource Pools]
ttp://sourceforge.net/projects/c3p0
[XAPool : Pool object for JDBC connections and XA connections]
ttp://xapool.experlog.com/
●JDBCに関する情報源
[JDBCの基礎]
ttp://www5b.biglobe.ne.jp/~hrk117/personal/pc/jdbc/
[JDBC API解説]
ttp://akimoto-jp.com/java/Database/Jdbc-api/index.html
0004デフォルトの名無しさん
NGNG--- 比較資料など ----
[JDBC, Hibernate, Torque, DbUtilのベンチマーク比較]
ttp://d.hatena.ne.jp/masanobuimai/20031216#p2
---- Hibernate関連情報 ----
[HIBERNATE - Relational Persistence for Idiomatic Java 【日本語訳版]
ttp://www.ozacc.com/library/java/hibernate/doc/html/index.html
[Hibernate User FAQ 日本語訳版]
ttp://nekop.programmers.jp/wiki/Hibernate/?HibernateUsersFAQ
[@IT - Hibernateで理解するO/Rマッピング1,2]
ttp://www.atmarkit.co.jp/fjava/rensai3/ormap01/ormap01.html
ttp://www.atmarkit.co.jp/fjava/rensai3/ormap02/ormap02.html
[JAVA開発メモ - Hibernate]
ttp://www.moriwaki.net/wiki/index.php?%5B%5BHibernate%5D%5D
[はてなダイアリー - R2D2氏の日記]
ttp://d.hatena.ne.jp/R2D2/searchdiary?word=%2a%5bHibernate%5d
[はてなダイアリー - koichik氏のひとりごと - Hibernate入門記]
ttp://d.hatena.ne.jp/koichik/searchdiary?word=%2a%5bHibernate%5d
[Hibernateメモ]
ttp://muimi.com/j/hibernate/
[Hibernateを試してみる]
ttp://docs.positrail.org/pukiwiki.php?Document%2FHibernate
0005デフォルトの名無しさん
NGNG[Hibernateのマッピング情報を生成するのに便利なツール]
- XDoclet
Java Beanからマッピングファイルを生成
ttp://xdoclet.sourceforge.net/xdoclet/index.html
- Hibernate Synchronizer
Eclipse用プラグイン。DBのテーブル構造からマッピングファイルを生成
ttp://www.binamics.com/hibernatesync/
- JFaceDbc
Eclipse用プラグイン。DBのテーブル構造からマッピングファイルを生成。
ttp://www.pratocity.com/index.jsp?mod=/jface/jfacedbc.jsp
(新バージョンから有償になった?)
- Exadel ORM Studio Hibernate Edition
Hibernateにも使える、統合ORM操作環境(有償)
ttp://www.exadel.com/products_ORMstudio.htm
- Hibernateと親和性のある、国産IoCコンテナ"Seasar"
ttp://www.seasar.org/
ttp://seasarproject.g.hatena.ne.jp/
ttp://itpro.nikkeibp.co.jp/free/JAV/J2EE/20040412/1/
---- Cayenne関連情報 ----
[Cayenneの紹介と、基本的な使い方(英語)]
ttp://www.theserverside.com/articles/article.tss?l=Cayenne
0006デフォルトの名無しさん
NGNG---- Torque関連情報 ----
[Torqueを動かしてみる]
ttp://homepage1.nifty.com/kingyoshi/computer/jakarta/torque.htm
[Torqueチュートリアル]
ttp://www.jajakarta.org/turbine/jp/turbine/torque/tutorial.html
---- JDO関連情報 ----
[Castorを使用したオブジェクト・リレーショナル・データ・バインディングの基本を学ぶ]
ttp://www-6.ibm.com/jp/developerworks/java/021025/j_j-castor.html
[CastorでオブジェクトをRDBにマッピング]
ttp://www.atmarkit.co.jp/fxml/rensai2/xmltool06/01.html
---- DbUtils関連情報 ----
[DbUtilsメモ]
ttp://www02.so-net.ne.jp/~kikuta/dbu/index.html
---- コネクションプーリング関連情報 ----
[Jakarta Commons DBCPを使ってみよう]
ttp://taka-2.com/jclass/DBCP/
[DBCP利用法 from "『カモン!Commons!』 Jakarta Commonsを使ってスキルアップ" (2002/09)]
ttp://www.mobster.jp/wiki/index.jsp?pid=Commons#i10
0007デフォルトの名無しさん
NGNGあとは補足ヨロ
ノシ
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG- Criteriaクラスを使うよりも、HQL使ったほうが高速。
(Criteriaは、内部解析の後に、SQLへ変換される)
- hibernate.propertiesは、Hibernateが初期化される最初の1回のみに読み込まれ、
hibernate.cfg.xmlは、SessionFactoryがビルドされる毎に読み込まれる。
DBへの接続情報を、hibernate.cfg.xmlに書くexampleが多いが、
経験上、DBとの接続情報などはhibernate.propertiesに全部移し、
hibernate.cfg.xmlにはマッピング情報のみを記述したほうがいいかも。
MySQLでは問題ないのだが、DB2に接続する際に、外部キー制約の処理中みたいな
ログを吐いたところでしばらくwaitしたりする(Hibernate2.1.3と、DB2v8.1 on AIXで確認)。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNGhttp://www.objectstyle.org/cayenne/userguide/index.html
http://www.objectstyle.org/cayenne/modelerguide/index.html
0012デフォルトの名無しさん
NGNG英語がわからない俺には手を出せないが、挑戦してみるのもいいかなぁ。
0013デフォルトの名無しさん
NGNGされてるのか知りたいときがある。そのためのツール。
[jdbcdebugger]
ttp://jdbcdebugger.sourceforge.jp/
[P6Spy]
ttp://www.p6spy.com/
0014デフォルトの名無しさん
NGNGttp://www-6.ibm.com/jp/developerworks/java/040604/j_j-hibern.html
0015デフォルトの名無しさん
NGNGしたいのですが、ディレクトリの構成で悩んでおります。
取りあえず以下の様にしたのですが、これがベストなのか
どうかご指摘等お願いします。
ちなみに出来るだけ単純にしたいのでコンソールアプリで
作成しています。
root
│ build.xml
│
├─config ←コンフィグファイル群 java/classesへコピーされる
│ ├─conf ←手動で作成
│ │ hibernate.cfg.xml
│ │
│ └─xdoclet ←XDocletで生成
│ model.hbm.xml
├─java
│ ├─classes ←*.class
│ ├─doc ←javadoc
│ ├─jar ←*.jar java/classesから生成
│ └─src ←*.java
├─resource
│ └─lib ←必要なjarファイル群(Hibenate等)
└─test
├─classes ←テスト用の*.class
├─data ←テスト用のデータ
├─report ←JUnitの結果レポート
├─src ←テスト用の*.java
└─xmlout ←JUnitの結果
0016デフォルトの名無しさん
NGNG参考になるかどうかわからんが、
ココにHibernate+XDocletの解説とサンプルコードがあった。
ttp://www.commentout.com/people/takai/memos/hibernate_xdoclet/
001715
NGNGそこのサンプルはMavenを使ってるようですね。
実は15の構成だとbuild.xmlがかなり複雑になってしまってて……。
mavenのゴールを調べてみると「xdoclet:hibernatedoclet」
「hibernate:init」「hibernate:schema-export」
などがありますね。
これからmavenを少し勉強してみます。
ありがとうございました。
0018デフォルトの名無しさん
NGNGttp://nekop.programmers.jp/diary/?date=20040606#p01
DBCPとHSQLDBのテストデータ使って、小さなテストコード書いてみたけど、
プーリング未使用時よりも30〜40%くらい速くなるのかな。
0019デフォルトの名無しさん
NGNGhttp://www.nighttale.net/OpenSource/HibernateMulitpleTableGen.html
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG大概語られてるからね
0023デフォルトの名無しさん
NGNGMiddlegenとか見つけたんですがこれもまた資料が。。。(逝
だれか詳細わかるかた教えてください。。。
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNGHibernate + Middlegen + Antを使用したbuild.xmlの例
ttp://www.boundless-ocean.ne.jp/archives/000102.php
MiddlegenのAntタスクの仕様(英語)
ttp://boss.bekk.no/boss/middlegen/ant/index.html
英語の資料って読むのに時間がかかるので正直ツライ。
0029デフォルトの名無しさん
NGNGjarファイルの依存関係が大変なので、おそらくmiddlegenタスクに辿り着くまでに挫折する人が出てきそうだね。
ttp://boss.bekk.no/boss/middlegen/dependencies.html
んで、せっかくなので、成功したときのtaskdefを晒してみる。
<taskdef name="middlegen" classname="middlegen.MiddlegenTask">
<classpath>
<fileset dir="E:/java/middlegen-2.0-vo">
<include name="middlegen-2.0-vo.jar" />
<include name="middlegen-hibernate-plugin-2.0-vo.jar" />
<include name="samples/lib/commons-collections-2.0.jar" />
<include name="samples/lib/log4j.jar" />
<include name="samples/lib/velocity-1.3.jar" />
</fileset>
<pathelement location="E:/java/mysql-connector-java-3.0.14/mysql-connector-java-3.0.14-production-bin.jar" />
</classpath>
</taskdef>
<path id="hibernate.jars">
<fileset dir="E:/java/hibernate-2.1.4">
<include name="hibernate2.jar" /><include name="lib/*.jar" />
</fileset>
</path>
<taskdef name="hbm2java" classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask">
<classpath>
<path refid="hibernate.jars" />
<fileset dir="E:/java/hibernate-extensions-2.1.2/tools">
<include name="hibernate-tools.jar" /><include name="lib/*.jar" />
</fileset>
</classpath>
</taskdef>
0030デフォルトの名無しさん
NGNGttp://pride.sourceforge.net/
0031デフォルトの名無しさん
NGNGttp://www.exglue.jp/
上記のサイトで紹介されているHibernateのチュートリアル。
*.xmlのタグが&lt&gtになってるんでIE以外では見るのは厳しい。
ttp://www.ndci.co.jp/tips/hibernate/hibernate.html
・・・・・・なんか、妙な気分になるのは気のせいでしょうか?
0032デフォルトの名無しさん
NGNGまぁ別にいいんでないかと。
フリーでこういうの出ないかねぇ。
一番妙だと思うのは、「5倍」の根拠ですかなw
0033デフォルトの名無しさん
NGNG自分でstruts-config書いたら、自動生成の場合より5倍かかる、と。
0034デフォルトの名無しさん
NGNGHibernateを使用した製品を販売している、という国内のHibernateの導入実績に貢献してくれた
ことについては、素直に評価したい。(購入する気はさらさらないが)
「実績がない」という一言で、便利なツール類が導入出来なかった事が多々あるのもので。
0035デフォルトの名無しさん
NGNGExadelはフリー版で充分だよ
0036デフォルトの名無しさん
NGNGStruts自体が生産性低くしてるもんだから、
こういうプロダクトが出てくるんだろうね。
漏れはよいことだと思うよ。
しかし、漏れの真のおすすめは、普通にServlet/JSPで作る
これで何が不満なのか
0037デフォルトの名無しさん
NGNG覚えるほどの価値あるのかしら、成果あるのかしら
イテレータとハッシュマップじゃだめなの?
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNGと思うならそれでいいと思われ。
0040デフォルトの名無しさん
NGNGだよな。
別にわざわざ説明する義理もないし。
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNGかいーの?かんぺい?
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG→ http://hirohiro.homeip.net/essay/2004/06/20040623.htm
Hibernate これからという人にはオススメかも。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG使っている人いない?
0051デフォルトの名無しさん
NGNGネ申
こういう資料を求めていた。・゜(ノ∀`)゜・。
0052デフォルトの名無しさん
NGNGおおおおお!まさに神!さっそく印刷して使わせてもらってます。
0053デフォルトの名無しさん
NGNGHibernateは何なのかとしっかりかいてあってよい
おかげで、漏れは絶対このアプローチのフレームワーク、ライブラリを使うまいと決心することができた
0054デフォルトの名無しさん
NGNG十年以上も昔にもっとスマートなアプローチ、連想配列や配列の配列ってのがあるしさ。
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNGと思うのなら、ORマッピングが必要なものを作ってないだけなので、使わなければいい。
0057デフォルトの名無しさん
NGNG必要とまで言わなくとも、開発効率が上がるならよいと思うが
問題なのは自動生成したコードのメンテナンスが結局めんどくさいってこと。
Hibernateの作者がこのことに気づいちゃったらやる気なくなるだろうし、
もうHibernateは誰も面倒見ないし、このソフトを土台にしたソフトウェア自体危うくなる。
0058デフォルトの名無しさん
NGNG変更箇所の集中には価値がある。
0059デフォルトの名無しさん
NGNGソースコードの自動生成なんてやってる限り、集中してないだろ。
それに過度の集中ならそれは機能間の依存性の高さに繋がって
変更にかかるコストが高くなる。
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG> ソースコードの自動生成なんてやってる限り、集中してないだろ。
意味がわからん。
自動生成したコードに集中してるんじゃないの?
> それに過度の集中ならそれは機能間の依存性の高さに繋がって
相関がわからん。
たとえば、JDBCでは、DBシステムのバージョンアップで変更があったときでも、JDBCドライバだけに変更が集中する
つまり、この場合は過度に集中しても機能間の依存性の高さにつながってない。
どういう条件で、過度の集中が機能間の依存性の高さにつながるのか、説明きぼん
> 変更にかかるコストが高くなる。
変更作業の総量が少なくても、変更にかかわる人が増えると、変更のコストが高くなることもある。
0062デフォルトの名無しさん
NGNG> 自動生成したコードに集中してるんじゃないの?
そうだが、自動生成よりもっといい手があるならそれをしたほうがいい
> 相関がわからん。
相姦は特に無い
集中はいいといって本当になんでもかんでも集中させちゃう人が、実際にはいるので書いてみただけ
0063デフォルトの名無しさん
NGNGいい手があるならね。
自動生成したコードを機械的に変更するのがめんどくさくて、手近に女の子プログラマがいるなら、彼女にまかせればいい。
実によくやってくれる。
0064デフォルトの名無しさん
NGNG↓
相姦
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNG最初から自動生成せずハッシュマップでよかろうと
0067デフォルトの名無しさん
NGNGだから、DBUtilsでいいなら、そうすればいい。
ORマッピングで、OR変換を集中管理したいならORマッピングにすればいい。
別問題。
0068デフォルトの名無しさん
NGNG0069デフォルトの名無しさん
NGNG「複雑な」参照でもORマッピングは要らないんじゃないの?
すんごい長いSELECT文発行するようなやつ
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNGそれなりの規模の仕事をしてて、それなりに技術力のある人は、ORマッピングがイイって言ってる。
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNGオブジェクト指向の時も、「オブジェクト指向はいらね」と言う人はたくさんいたわけだし。
それで今でも食っていけてるわけだし。
0075デフォルトの名無しさん
NGNG自動生成されるソースのメンテのほうが楽ってこと?
0076デフォルトの名無しさん
NGNG>クイープ
0077デフォルトの名無しさん
NGNGStruts in Actionの訳ひどかった・・・・・・・・・・・・
0078デフォルトの名無しさん
NGNGORマッピングとオブジェクト指向と同列にすんなよ。
漏れはオブジェクト指向マンセーだが、ORマッピングには超ネガティブ。
ORマッピングって、何の振る舞いも持たないクラスを自動生成するってことでしょ。
これは本当に意味無い。それどころかメンテしづらくなって有害。
0079デフォルトの名無しさん
NGNG結局やりたいことはJavaストアドなんだよね。
0080デフォルトの名無しさん
NGNGだから、意味がないと思ったりメンテしづらくなる場合には使わなければいいだけの話。
0081デフォルトの名無しさん
NGNGそりゃ、何か振る舞いを持つオブジェクトをデータベースを参照して生成するってのは、
それが有効な場面は多いが、しかし、ソースコード自動生成ってことは、ロクな振る舞い
クラスがどんどん生成されるってことだろ。
これは勘違い野郎のウォナニー。
0082デフォルトの名無しさん
NGNGそうかな。
俺、自作するのめんどいから、つかえるもんならぜひ使いたいけど。
DBレイアウトそのままにマッピングできるclass群の自動生成とか、
それだけでも有効利用する方法が結構思いつく。
おぼえるのがめんどいから、やらないけど。
来週も鬼のような集計用SQLを書いて、それを逐一classに転送する処理作成の続き。
ER図からclassのレイアウトを起こす
↓
classを作成する
↓
集計用SQLを書く(テーブル結合、サマリなどの集計あり)
↓
ResultSetから、値を取り出し、classに配置し、レコード数だけのListにする。
という処理。
なーんか自動化できるような出来ないような・・・。
0083デフォルトの名無しさん
NGNGSQL文は、分散する傾向がある。
それから、SQL文書いたときは、そのデータ型に従ったResultSet#get・・・メソッドを使って処理をする必要がある。
たとえば、開発中の場合、データベースのフィールド名やデータ型が変わることがゼロではない。
そのときに、SQL書いてResultSet#get・・・書いてる場所はすべて変更する必要がある。
ORマッピングで変換場所をまとめておけば、その部分だけを変更すればいい。
マッピングがXMLに記述されていれば、そのXMLを変更すればいい。
もちろん、完全にそれだけというわけにはいかないけど、ある程度変更場所を集中させることができる。
0084デフォルトの名無しさん
NGNGもしかして、大量のフィールドとアクセサメソッドしかないクラスを定義していたりするのかしら。
そんなコードもう見たくもない!
普通にMap使ってくれ。
0085デフォルトの名無しさん
NGNGフレームワークに頼らなくても(むしろ頼らないほうが)シンプルな設計にすることはできるよ。
0086デフォルトの名無しさん
NGNGだってMapだと型が・・・。
0087デフォルトの名無しさん
NGNG言うだけならただだよ。
どうシンプルにするんだよ。
0088デフォルトの名無しさん
NGNG普通にデータ取得する部分をリファクタリングして同じメソッドでやるようにすれば?
0089デフォルトの名無しさん
NGNGで、それを全部手作業でやる、と。
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG1) DBの型変更→自動生成クラスの型変更
2) →自動生成クラスのユーザ修正
1)は自動化できても2)は必要でしょ
自動生成クラスの型が変わっちゃうんなら
HashMapマンセーの人は多分全部文字列にしてやってるんでしょう
事実それで問題ないことも多いし
型安全性が全く無い分、実はDBの修正に対して柔軟である
(コードの修正が必要ない)ことも多い気がするよ
HashMapを透過で扱ってる部分は全部パススルーになるし
カラムとかは設定ファイルで定義すればいいからね
0092デフォルトの名無しさん
NGNGだから、RDBの型が変わってもJava側の型が変わらない場合。
HashMapでどうの、って言ってるときは、結局そのデータ表示するだけって場合でしょ。
いろいろ処理する場合、型が必要になるわけで。
0093デフォルトの名無しさん
NGNG自動生成のPOJOの類を透過で扱うためにBeanUtilとか使ってるんなら
まさにHashMapとかわらん気がするよ。
無駄にコードを太らせてるだけ。
0094デフォルトの名無しさん
NGNGなわけないだろ
キャストすれ
0095デフォルトの名無しさん
NGNG> いろいろ処理する場合、型が必要になるわけで
いやいらん場合も多いと思うよ
テキストタイプのSQLクライアントを想定してもらえば分かるように
SQLは基本的に全部テキストだ
Webのクエリに出てくるような情報も、意味論的には整数だったりするかも
知れないが、全部テキストだ
型情報が欲しければ、それさえも設定ファイルに含めてしまえばよい
パススルーではなく実際にロジック的な処理を行う項目・属性は
勿論それではすまないだろう。それはコードに現れざるを得ない。
だが、例えばWeb + DBで構築するような単純なアプリでは、
実際には透過で右から左に渡すだけのデータが意外に多い気がするよ。
0096デフォルトの名無しさん
NGNGキャストは透過にならないから嫌だなあ
カラム毎にくだらんキャストコード書くぐらいなら
まだラッパーPOJOがあるほうがマシじゃん
0097デフォルトの名無しさん
NGNGデータベースを扱うプログラミングするときは明示的に型宣言しなくていい言語でやる
0098デフォルトの名無しさん
NGNGくだらなくない それがJavaプログラミングの味だろ
0099デフォルトの名無しさん
NGNG>> いろいろ処理する場合、型が必要になるわけで
>いやいらん場合も多いと思うよ
で、いろいろ処理しない場合は必要ないっていってて、いろいろ処理する場合は必要って言ってるように見えるのだけど。
0100デフォルトの名無しさん
NGNG別にHashMapでも「色々処理すること」は可能だけど透過じゃなくなるだけ
ですよ
画面の入力項目が増えてDBのカラムも増えました
その入力項目は、しかるべきvalidationをおこなって
DBにそのまま突っこむだけです
といった場合、HashMapならコード一行もいじる必要ないよ
0101100
NGNG0102デフォルトの名無しさん
NGNGいや、せめて、選択カラムを増やすコードは直さなきゃいかんと思うが。
(リクエストの内容をそのままSQLに流すコードは書くこともできるだろうが、超危険)
0104デフォルトの名無しさん
NGNGまぁ、いいんだけど。
個人的には設定ファイルなんてめんどくさいだけだから要らない。
ファイルなんかじゃなく、もっと適切な場所があるだろうし。
0106デフォルトの名無しさん
NGNGなんで、「色々処理すること」は可能っていっておきながら、例として
> その入力項目は、しかるべきvalidationをおこなって
> DBにそのまま突っこむだけです
> といった場合
みたいな、色々処理してない例が出るんだろう・・・
0107デフォルトの名無しさん
NGNGルーズすぎる。
新しいフィールドを追加するのも、フィールドけすのも自由なら、
違う型のデータを同じキーで打ち込むのも自由、どんな風にキャストするのかも自由なら、
変数ごとの制度の設定も自由。
だめに決まってるだろ。
ついでに言うと、わたってきたもののインスタンスがなんなのかなんの保障もないし、
どんなフィールドがあるのか、コードから類推できない。
悪いことだらけ。
0108100
NGNG普通そういうのはExcelのマクロとかで吐かせるでしょ
糞みたいなxml手で書いてられるかっちゅーの
0109デフォルトの名無しさん
NGNG0110100
NGNGもしかしてHashMapで「色々処理する」やり方がわかんないの?
おれは、そういう自明な話じゃなくて、「色々処理しなくて済む
場合」には完全に透過になるからDBのカラム定義が変わろうが
コードなんかいじる必要ないよ、というメリットを話してるだけです。
「色々処理する場合」は、要するにキャストが必要になるだけ、でしょ
HashMapの主要なデメリットは。
0111デフォルトの名無しさん
NGNG> コードから類推できない
メソッド名が適切なら分かると思うよ。
0112100
NGNG> どんなフィールドがあるのか、コードから類推できない。
これは結構でかいよね。分かりやすさっつーかreadability。
Perlのようなwrite onlyとか言われる言語でコーディングするのに似てる。
でも、「汎用」だからあたりまえだよね。
コンパイラを眺めたって、それでコンパイルするソースコードが
どんなものかは、分からないのと同じ。
HashMapがいやなあなたは、勿論DOMなんて使わずに
SAXベースで専用のobject木を構築するんですよね、毎回。
0113デフォルトの名無しさん
NGNGそろそろやめてくれない?
もうそれでいいから。
ここはここで、使いづらくて有用でないORマッパーの評価を続けていくから。
これでいいだろ?
0114デフォルトの名無しさん
NGNGマクロで吐かせるレベルのものって、なんだ。
その処理に必要なカラムを選択したいからプログラムを書くわけで、
それを設定ファイルっていうのは、やはり面倒だ。メンテナンスしづらい。
0115デフォルトの名無しさん
NGNGだから、いろいろ処理しない場合は、ORマッピングの意味はあまりない、という話をしてるんだけど。
いろいろ処理するとき、PreparedStatement用意してどうのこうのして、キャストしてどうのこうの、というときの面倒を局所化できる、ということじゃないの?
0116デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG> HashMapがいやなあなたは、勿論DOMなんて使わずに
> SAXベースで専用のobject木を構築するんですよね、毎回。
そんなんDigesterにきまってる。
0119デフォルトの名無しさん
NGNGばいばい。
0120デフォルトの名無しさん
NGNGValidaterで。
0121100
NGNGPreparedStatementだのResultSetだのは局所化するでしょ
HashMap使ってるんなら
HashMapってのはDAO層の上にあるobjectなわけだからさあ
0122デフォルトの名無しさん
NGNG107じゃないが
>HashMapがいやなあなたは、勿論DOMなんて使わずに
>SAXベースで専用のobject木を構築するんですよね、毎回。
単にパースする程度でいいならDOMで済ますけど
いろいろ操作したい場合は当然専用のobject木を構築します。毎回。
SAXベースのこともDOMからのこともありますが。
ORマッピングとHashMapも要は適材適所。
全部が全部どっちでないといかんという代物でない。
HashMap信奉者なのか知らんが何でもかんでもHashMapってのは頭が悪い。
0123100
NGNGDigesterっつーことはちょっと便利なSAX + 自前obejct treeですね
やはりDOMは
・型安全性がない
・性能がいやん
・マルチスレッド環境が怖い
という感じですか?
0124デフォルトの名無しさん
NGNG> 勿論DOMなんて使わずに
> SAXベースで専用のobject木を構築するんですよね
そこでRelaxerですよ。
あれもまたトンでもなく冗長なJavaコード吐き出すシロモノで、あれはよくないと思った。
それより、普通にDomプログラミングをしたほうが効率よい。
0125デフォルトの名無しさん
NGNG> PreparedStatementだのResultSetだのは局所化するでしょ
> HashMap使ってるんなら
相関がない。
HashMap使って、局所化するコード書いてるんなら局所かするだろうけど、そこまでするならORマッピング使った方が楽そう。
0126デフォルトの名無しさん
NGNGアクセサしかないクラスの自動生成だけは止めてほしいっていう、それだけなんですが。
0127デフォルトの名無しさん
NGNGっていうか、DOMより楽、ってことで。
0128デフォルトの名無しさん
NGNGアクセサしかないクラスは、自動生成したい。
0129デフォルトの名無しさん
NGNGそれはHashMapで
0130デフォルトの名無しさん
NGNGキャストがいや。
たまにある、処理があるセッターゲッターが無視できない
0131100
NGNG局所化するのは当然の前提ですよ。
HashMapとDBのI/Oを取り持つDAO層のコーディングなんてタカが知れてるけど
いやならDB-Utilつかえばいいじゃん。
HashMapの場合は、UPDATE文やINSERT文は動的に生成することになるけど
affectするカラムは必要な物に完全に限定できますよ。
変更する対象だけHashMapに突っこめばいい訳だからね。
0132デフォルトの名無しさん
NGNG> HashMapとDBのI/Oを取り持つDAO層のコーディングなんてタカが知れてるけど
だから、タカが知れてるときは、HashMapでどうぞ、と。
0133100
NGNGそうかなあ。そうかもな。
.NETとかだとDOMがXPATH拡張されてるからラクチンだけど
今どきJavaでもXPATHだよね
まあいったん専用のobject木をつくっちまえば、後はそっちのが楽では
あるんだけれど
0135デフォルトの名無しさん
NGNGそうするのが適切なデータベースを扱うソフトって見たことないんだけど、
どういうときに何をやるのか
0136デフォルトの名無しさん
NGNGオブジェクトにしとけば、イテレータでいけるし。
イテレータだと拡張forで楽ができる予感。
0137デフォルトの名無しさん
NGNG量が多い
0138100
NGNG何の?
HashMapベースのDAO層を作るとして、
テーブル数やレコード件数が増えようが
コードの量は別にかわらんでしょ。関係ないもの。
ま、テーブル数が増えれば設定ファイルは増えるだろうけど
それってフレームワークを使う場合と同じだよね。
0139デフォルトの名無しさん
NGNG0140100
NGNGええと、自分でコーディングしたことないんですか?
マッピングフレームワークとかがモテ系になる前に。
「で、楽になりましたか?」
と、そういうことを聞きたいだけなんですが。
0141デフォルトの名無しさん
NGNG俺用というのが、アプリケーション毎に必要な分だけ書かれたコード、という意味なら、
そういうこと。
それが正しいと思うよ。
0142デフォルトの名無しさん
NGNGフレームワークの一般論なので、とくに説明する必要ないと思われ。
自分のフレームワークで満足してるなら、それでいいよ。
0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNG型付けがしっかりしてないと多人数が関わる大規模プロジェクトで
破綻すること請け合いですよ。
PHPとかのスクリプト言語じゃあるまいし。。。
0147146
NGNG単純なマスタ管理部分や更新系はHibernate使っちゃうと楽なんだけど。
BOは自動生成でいけちゃうし、わざわざDTO作る必要ないよね。
0148デフォルトの名無しさん
NGNG全部Stringでいい、ってプロジェクトなんだと思われ。
0149デフォルトの名無しさん
NGNG1人か少人数でやってるんじゃない?
0150100
NGNG数億ぐらいとか?
俺は怖いですねちょっと
大規模プロジェクトだとEJBなのかなと思ってました
HashMapで数人程度の奴なら回せますよ
実際にはロジックをいじるプログラマは開発要員の一部になる
訳ですから、困らないことが多い訳です。
昔のCOBOLのコーダーをガリガリ入れてたような大規模な奴なら
考え込むでしょうが、そういうやつでJavaというのは
やったことありませんね
0152デフォルトの名無しさん
NGNGなんか支離滅裂やな。
148じゃないけど、いろいろな処理をする場合は、Stringにマップするわけにはいかんと思うんだが。
0153デフォルトの名無しさん
NGNG大規模プロジェクトだとEJB
なんか、HashMapだと足りなくてEJBだと大げさすぎるものはHibernateがいいかも、っていうのをわかってて書いてないようにしか思えないのだが。
0154100
NGNGですから、必要な場合は型変換すればいいでしょう
Stringにしておくと、Validationも透過で扱えるから便利ですよ
正規表現が使えますから
で、あなたが関わっている「大規模プロジェクト」ってのは、
どの程度なんですか?
0155100
NGNG所詮その程度のものなんですか?
私は今やトレンドのようになっているOR mappingというのを
トレンドだからと言って盲信するのでなしに、
「本当に便利なのか?」というのを知りたがっている、
そういう「普通の」技術者の疑問に答えて欲しいと思っている
だけです。煽れば色々出てくるでしょうし(w
0156146
NGNGMapでキーにする文字列は定数化とかしてるのかな?ある意味マジック
ナンバーになりかねないと思うけど。
とりあえず、型の考え方についてはEffectiveJavaの7章をしっかり
読んどいた方が良いよ。
http://www.amazon.co.jp/exec/obidos/ASIN/4894714361/qid=1088901593/ref=sr_8_xs_ap_i1_xgl14/250-7076236-2214640
***
あと、話題に出たEJBですがHibernateやっておくと3.0へすんなり
移行できそうです。
http://www.theserverside.com/news/thread.tss?thread_id=27005
0157デフォルトの名無しさん
NGNG> Stringにしておくと、Validationも透過で扱えるから便利ですよ
> 正規表現が使えますから
Validationがなにを指してるかわからんが、大文字で始まってるからにはなにかのクラスなんだろうか・・・
別にStruts使えば、Stringじゃなくてもバリデータ使えるし、正規表現使えるし。
ってか、そもそも正規表現でチェックしたいデータは文字列だし。
0158デフォルトの名無しさん
NGNG> 所詮その程度のものなんですか?
何期待してるの?
HibernateがEJBを置き換えると思ってたの?
両者特性が違うから、使い分けるものだと思うんだけど。
> 「本当に便利なのか?」というのを知りたがっている
その「本当に便利」というのは、どんな場合でも便利、ということなんかな。
「所詮その程度」という言葉が出てくるってことは。
0159デフォルトの名無しさん
NGNGだから、全部Stringなんてありえないって。
nIntegerやLongやBooleanとかいろいろあるだろ。
0160デフォルトの名無しさん
NGNGメンテナンスしやすくなって、大規模開発に向いていると漏れは思う。
0161157
NGNG0162デフォルトの名無しさん
NGNGなんでメンテナンスしやすくなる?
0163デフォルトの名無しさん
NGNGコードは短いほうがよい
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNGソフトウェアの命はソースコードなんだから、
一行たりともムダなコードは書かないっていう意気込みを持った、
リファクタリングの文化が浸透している組織がもっとあっていいと思う。
ムダなコードがりがり書いて、質の悪いコードが自動生成されたとしても平気なのが、
図太いのかどうなのか。とにかくコードが無意味に沢山あるのが許せん。
0166デフォルトの名無しさん
NGNGコードが短いほどメンテナンス性が高くなるとは限らない。
処理上ひとつのメソッドで実装できるけど、ユニットテストのためにメソッド分割してコードが長くなるのがわかりやすい例。
アクセサしかないクラスのプロパティは、ツールで生成するし。
0167デフォルトの名無しさん
NGNGゴリゴリ書くんですか?
0168デフォルトの名無しさん
NGNGムダなコードはムダだけど、冗長なコードがムダとはかぎらない。
まぁ、アクセッサメソッドはC#のプロパティみたいな仕組みがあれば省略して書けるとは思うが。
「省略して書ける」だけだよ。
0169デフォルトの名無しさん
NGNGBeanUtils
0170デフォルトの名無しさん
NGNGJavaがあえて省略して書けないようにしてるっていうのは、
「アクセサ多くなりがちなときはキーを渡して値を返すメソッドを作ってくれ」
というJavaの言語仕様設計者のというメッセージなのだと思う。
漏れはこれが気に入っているが。
0171デフォルトの名無しさん
NGNG実際に存在するテーブル一つに対してSELECTとかはできるんですが
JOINとかで結合する場合ってどうやって書けばいいのかわかりません
仮想的なそういうテーブル定義するんですか?
それともViewをDB側であらかじめ作っておきそれに対して
Mapping書くとか?
0172デフォルトの名無しさん
NGNG> ソフトウェアの命はソースコード
自分が書く部分は命と呼んでいいけど、自動生成されたものは正直どうでもいい。
NetBeansが吐き出すGUI構築部分とか
0173デフォルトの名無しさん
NGNGせめて、何使ってマッピングしてるのか書け。
0174デフォルトの名無しさん
NGNG> 「アクセサ多くなりがちなときはキーを渡して値を返すメソッドを作ってくれ」
> というJavaの言語仕様設計者のというメッセージなのだと思う。
「目があったからあの娘はオレのことが好き」理論だな。
0175デフォルトの名無しさん
NGNG――--、..,
:::::::,-‐、,‐、ヽ.
:::::_| | |-i、
/. ` ' ● ' ニ 、
ニ __l___ノ
/ ̄ | i
| _\\
|( ̄`' )/ /
`ー---―' /
====( i)=:
0176デフォルトの名無しさん
NGNG流れから察してやれよ
0177デフォルトの名無しさん
NGNGこういうのを全否定しているんだとしたら、
何の仮説も言えんじゃないか。
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNGいえ、どのFrameworkっていうわけではないんですが
結合したテーブルをエンティティーオブジェクトとして扱うには
どうやって実現すればいいのかな?と思って
たとえばターキだとどうするのでしょう
一つのテーブルに対しての操作方法はわかるんですが
通常、一つのテーブルからデータ持ってくるだけでは済まないですよね
ある情報をSELECTしてきて、さらにIDと日本語名のマスタから
日本語名を取り出して表示させる場合とか
SQLだとJOINすれば済みますが
0180デフォルトの名無しさん
NGNGhttp://www.hibernate.org/hib_docs/reference/en/html/mapping.html#mapping-declaration-manytoone
0181デフォルトの名無しさん
NGNG少なくとも>>170は、仮説というか、根拠の無い思い込みだ。
仮説だというなら、その根拠になるものをなにかあげてくれ。
おれはアクセッサメソッドだけのクラスは「ツールで生成して振り返るな」というものだと思ってる。
別にJavaの仕様の何かが、暗に導いてるというわけじゃなく、勝手に思ってる。
0182デフォルトの名無しさん
NGNG外部キーが関連オブジェクトになるイメージ。
ローディングで負荷がかかりそうな箇所は、キャッシュを利用する事で回避。
0183デフォルトの名無しさん
NGNGこんな型がどうこうなんて、非本質的なのは確かだが、
Mapを使うかいいか、長いクラス定義するのがいいかっていうのは、
美意識の問題なもんだから、これはこれで面白い。
0184デフォルトの名無しさん
NGNGTurkey・・・ボーリングでストライクを3回続けて出すこと
Torque・・・トルク、偶力
0185デフォルトの名無しさん
NGNGキーをスペルミスする馬鹿が頻出して困る。
0186デフォルトの名無しさん
NGNGユニットテスト
0187デフォルトの名無しさん
NGNG実行時にならないと、そういったミスが判断できないような
アプリケーションはどうかと思う。
0188デフォルトの名無しさん
NGNGチームで開発するときは、チームの方針に合わせてやっちゃうからね。
言いたいこといろいろいあるんじゃないかと。
0189デフォルトの名無しさん
NGNGサーブレットからJSPにデータを渡すときみたいな一時的なものや、文字列にして表示するだけならMap
あっちゃこっちゃで使ったり、型が必要ならアクセッサメソッド。
長くなるかならないかは判断基準にならないし、するべきではない。
0190デフォルトの名無しさん
NGNG実行時にならないと判断できないミスって、他にもいろいろあるんだし。
そんなささいなミスを無くすために、ここでわざわざ長いコード生成するほどのことかと。
フレームワークがメンテナンスされなくなったときのリスクもあるんだし。
0191デフォルトの名無しさん
NGNGJSPに渡すだけなら、結局ELのところで実行するまでわからないことになるから、Mapでいい。
0192デフォルトの名無しさん
NGNG他にもいろいろあるからこそ、コンパイラで静的に保証できる部分は保証できるようにしておく。
0193179
NGNGリンク先読んでもJOINをどのようにすればいいのかわからんので
とりあえずもうすこし勉強します
外部キーですかなんとなく理解できそう
>>184
ですよね
こないだ、新プロジェクトで初顔合わせのリーダが
「ターキかハイバーネットを使用したいと思っている」
とか言っていたので「あ、あれってターキーて読むんだ」
と思いました
自分は今までトルクだと思っていましたので
「あぶねー恥かくところだった」と思いました
0194デフォルトの名無しさん
NGNG>>189が言ってるように長くなるかならないかは判断基準にはならない。
値の受け渡し箇所なんて、特にケアレスミスの発生しうる所だから
なるべくコーディング時にミスかどうかを判断させるべき。
0195デフォルトの名無しさん
NGNGそんな保証しなくていい。
コード追いかける身になってくれよ。
0196デフォルトの名無しさん
NGNG字で書くときはアルファベットのまま書くがよろしい。
nateをネットと読むこともないし。
最近の流れを見てるとTorqueよりはHibernateの方がいいらしいぞ。
0197デフォルトの名無しさん
NGNGオイオイ…ちゃんと良書読んでるか?
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNGそれ、selectした結果をそのまま出すだけならそうかも知れないけど
selectした結果を使って何か処理したりする場合は…
0200デフォルトの名無しさん
NGNGMap使ってキーの名前間違ってて変な挙動した時のほうが、コード追うの大変。
単なるセッターゲッターだとわかれば、次からみなければいいし。
0201デフォルトの名無しさん
NGNGそんなこと続けてたんじゃ、
アクセサだけのクラスが多すぎて、本質的なコードが埋もれてしまう。
地獄だ。
0202デフォルトの名無しさん
NGNGだからJSPに渡すだけなら、と限定してる。
0203デフォルトの名無しさん
NGNGパッケージわければいい。
0204デフォルトの名無しさん
NGNGないだろうか。開発効率を優先とか言い張る気なのかな?
Map使いまくってるPJのヘルプに入った時、構造が全然つかめなくて
なんのためにJava使ってるのか意味不明だった思い出がある。
0205179
NGNGじつは僕、前すれ(だったかな)でHibernateの情報が英語しかなかったときに
一度、動作確認してその流れを書いた者です
あれから全然触っていなかったしこのスレもあんま見ていなかったので今から再度勉強してみます
0206デフォルトの名無しさん
NGNGおいおい、リファクタリングで局所化すればいいだけだろ?
0207デフォルトの名無しさん
NGNGOOの本質はポリモーフィズムだろ
振る舞いを持たないクラスを大量生成してオブジェクト指向って、ばかすぎる。
0208デフォルトの名無しさん
NGNGというかHibernateのGavinがEJB3.0に関わってるから、Hibernateが
主流になっていくのは間違いない。
あのソースを理解するのはかなり厳しいが・・・
0209デフォルトの名無しさん
NGNGリファクタリングはソースコードの品質を高めること。
コードを自動生成してたんじゃリファクタリングなんてできんだろ。
そのコード削れないんだから。
0210デフォルトの名無しさん
NGNGええぇ・・・
0211デフォルトの名無しさん
NGNGOOは関係ない気が。
コードのメンテナンス性を理解してないだけだと思われ。
0212デフォルトの名無しさん
NGNGパッケージわけるとか、処理を埋め込むならGenerationGap使うとか普通の話でしょ。
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGそうなんすか
じゃHibernateの理解は重要ですね
0216デフォルトの名無しさん
NGNGポリモーフィズムはOOの手段の一つで、本質は責任の分離。
0217デフォルトの名無しさん
NGNG0218デフォルトの名無しさん
NGNGCVSリポシトジに自動生成したコードが大量に入ってるなんて、
想像しただけで嫌になる。
コードは少量・シンプルなのがいい。
データはMapと決めたほうが分かりやすい。クラスだと何か振る舞いを持っているのか
いちいちチェックしないといけない。
0219デフォルトの名無しさん
NGNG雨が降ってきたから。
0220デフォルトの名無しさん
NGNGそう。責任の分離。
ならば、やはりデータの受け渡しは潔くMapに任せるほうがよい。
0221デフォルトの名無しさん
NGNGここ数レス見てるとそう取れるレベルの話になってるぞ…
0222デフォルトの名無しさん
NGNGメモリ内でやってもいいですが、メモリ喰いますよね
一度、テキストファイルとかに落とした方がいいんでしょうか?
それからいつも思うんですが
DBから取り出すデータを全部出すんじゃなくって
上から何行目までとかいう取り出し方ってないですかね?フレームワークで
データに通番つけて100番までとかいう条件つけるぐらいしか思い浮かばない
0223デフォルトの名無しさん
NGNG設定ファイルから自動生成するだけのコードなら、そのコードはCVSに入れず、設定ファイルのみCVS管理する。
> クラスだと何か振る舞いを持っているのか
> いちいちチェックしないといけない。
ツリーで、セッターゲッター以外があるか確認するだけでいい。
バグの可能性は少ないほうがいい。
0224デフォルトの名無しさん
NGNGだからパッケージで分けろって。
クラスだからとかそういうレベルじゃなくて、VOとかServiceとかDAOとか
役割でパッケージングして振る舞いを決めておけば苦労しないだろ。
そもそも、Service層とWeb層のやり取りをMapでやるなんてゾッとする。
0225デフォルトの名無しさん
NGNG> 何万件のレコードを扱う場合ってどうするんですか?
> メモリ内でやってもいいですが、メモリ喰いますよね
データベースにまかせる。
> DBから取り出すデータを全部出すんじゃなくって
> 上から何行目までとかいう取り出し方ってないですかね?
limit/offset使う
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNG普通に提供されている。あとLazyLoding利用するとか。
まずリファレンスくらい読んで機能把握しろ。
0228デフォルトの名無しさん
NGNG> Service層とWeb層のやり取り
Servlet→JSPの連携を言ってるのか、アプリケーションロジック→Servletの話か、説明きぼん。
0229デフォルトの名無しさん
NGNG> そのコードはCVSに入れず、設定ファイルのみCVS管理する。
Map使えばそんな技巧は要らないのに・・・。
フレームワークが、それがいろんな手続きを省略できて、人間からみて
読みやすくしているものならいいのだが、ORマッピングのフレームワークは
むしろ面倒にしているだけとしか思えない。
0230225
NGNG0231デフォルトの名無しさん
NGNGだから。DynaBeanならいいわけ??
0232デフォルトの名無しさん
NGNGAction→Service(ビジネスオブジェクト)間のやり取りのこと。
DAOはServiceで利用される。
DIConにはSpringを使ってたりしてる。
0233デフォルトの名無しさん
NGNGそ、そうですよ
だから、Frameworkでどうするのかと・・・
0234デフォルトの名無しさん
NGNG技巧っていうか?
ま、HibernateにしろStrutsのActionFormにしろ、XDocletのタグが入るから、CVS管理するんだけども。
0235デフォルトの名無しさん
NGNGコーディング自体は面倒になるとしても、管理が一元化できて楽とかになって
それがいいと思えば使えばいいし
そんなのいらんと思えば使わなければいい。
ぶっちゃけ、JavaじゃなくてPHPでいいやと思えば、PHPでも似たようなアプリは作れるといった
レベルの話をしているだけだぞそれ。
0236デフォルトの名無しさん
NGNGちょっとその人はEnterpriseDevの視点が薄いように思える。
0237デフォルトの名無しさん
NGNG目先の楽さにとらわれてるだけのような。
0238デフォルトの名無しさん
NGNGそもそもそこまでの話は出ているのか?
みんなMapうんちゃらCVSうんちゃらでものすごくミクロな視点でしか語ってないぞ。
0239デフォルトの名無しさん
NGNG単にコードの自動生成は止したいいという、ただそれだけ。
これは、エンタープライズ開発でも小規模開発でも、同じだと思う。
0240デフォルトの名無しさん
NGNGメンテナンス性がどうのとか、静的型保証の意義とか、そういう話。
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG自動生成できるもんは自動生成する。
エンタープライズの場合、極端な話、Javaのコードはすべて自動生成したい。
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGコーディングレスなアプローチを設計するときは、
コード生成せず、設定ファイルとライブラリだけで動くようにしてください。
なんでソースを自動生成することにこだわるのか。
0245デフォルトの名無しさん
NGNG俺も昔はMap大好きっ子だったしw
0246デフォルトの名無しさん
NGNG自動生成がいやなら、問答無用で「いらん」って一言言って終わりじゃねーか。
話し合いにも議論にもなりゃしないだろ。
0247デフォルトの名無しさん
NGNGrubyとかいう糞言語に汚染されてる悪寒。。
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG最低限必要なクラスは存在するものです。
それともVOとかも設定ファイルを作っちゃうの?
それこそ俺様フレームワークですよ。
0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNG静的型保証が出来ない時点で論点が一緒。
0252デフォルトの名無しさん
NGNG> コード生成せず、設定ファイルとライブラリだけで動くようにしてください。
完全なコーディングレスができるならね。
っていうか、その場合はコードじゃなくてクラスファイル作るわけだが。
現実的には完全なコーディングレスはできないから、ソースファイルを生成して必要なところだけカスタマイズする。
> なんでソースを自動生成することにこだわるのか。
ソースを書くことは、ある一定の確率でバグを作りこむことだから。
0253デフォルトの名無しさん
NGNGDynaBeanはいいよ。
0254デフォルトの名無しさん
NGNGもうちょっと勉強してから参加して欲しいと思うよ。
有意義な話にまったくならん。
0255デフォルトの名無しさん
NGNG雛形としての自動生成ってことなら、いいと思うんだが。
ちょっとデータ受け渡しの仕様変えるだけで、Javaコード吐き出し
ツールを動かしてJavaコード自動生成、っていうことなら、それは
よくない。
0256デフォルトの名無しさん
NGNGプロジェクトを知らないだけとかそんなオチ?
0257デフォルトの名無しさん
NGNGO/Rマッピング派→静的型保証のできるBeanは必須
こんなのでは10年話したって決着つかないよ。
そもそもMap派はなぜこのスレにいるのか。いらないと思ったらこんなスレに来るなよ。
0258デフォルトの名無しさん
NGNGあまりに自分勝手な人だったんで2週間でお取引願ったがw
0259デフォルトの名無しさん
NGNGちょっとデータ受け渡しの仕様が変わる部分を手作業で
変えていく方がよくない。担当者によってはデグレートが発生しますよ。
0260デフォルトの名無しさん
NGNG普通に考えて後者だろ。
「型安全」をわかってないやつ大杉。
0261デフォルトの名無しさん
NGNG型に対する意識が低い人は、無意識にバグを埋め込む頻度が高い気がする。
0262デフォルトの名無しさん
NGNGはっきりいってERDが固まっていない時点でコーディングをすること自体よくない。
0263デフォルトの名無しさん
NGNGジェネレーションギャップパターン使えばいいじゃん。
0264デフォルトの名無しさん
NGNG向いてないよ。VBとかやれば?
0265デフォルトの名無しさん
NGNGいまだにMap信者っているんですね。
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNGどうせVBでVariantとか使いまくってた人たちでしょ。
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNGデータベースのスキーマがほんとに固まるまで待ってたら、いつまでたってもコーディングできん。
コーディングの段階で変更の必要に気付くこともあるし。
0270デフォルトの名無しさん
NGNGこれ、ORの話じゃ全然無いよ。
0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNGあきらめたらそこで試合終了だよ
0273デフォルトの名無しさん
NGNGなんだけど、Mapの人は、小規模から大規模まで、Mapでやれとおっしゃる。
0274デフォルトの名無しさん
NGNG理想求めても、試合終了なんだけど。
0275デフォルトの名無しさん
NGNG型が保証されているっていうのは、そんなに重要ではないでしょ?
ただClassCastExceptionを避けるためでしかない。
それをやるためだけに、アクセサだけのクラスを(自動生成とかして)作ったりするのは
合理的ではない。非本質的なコードが多くなってメンテナンスしづらなくなる。
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNGオイ、潜在的なバグをどれだけ減らせると思ってるんだ?
0278デフォルトの名無しさん
NGNG自動生成ツールくらい使いこなせよ。Antで自動化してれば面倒臭くないべ。
コーディングミスのような人為的ミスを許す方が、よっぽど理想から遠くなる。
0279デフォルトの名無しさん
NGNG> 型が保証されているっていうのは、そんなに重要ではないでしょ?
> ただClassCastExceptionを避けるためでしかない。
ClassCastExceptionだろうがなんだろうが、実行時に予期しない例外がでることは大問題。
その可能性が減らせることは重要。
0280デフォルトの名無しさん
NGNG流れ嫁。
データベースのスキーマは自動生成できんよ。
0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNGERWin
0283280
NGNGデータモデルは自動生成できん、だな。
オブジェクトが先かリレーショナルが先かと、順番を変えて、あとの方は自動生成できるが。
0284デフォルトの名無しさん
NGNGJavaやってるとは思えない発言だな。
0285デフォルトの名無しさん
NGNGたぶんPHPあたりが本職です。
0286デフォルトの名無しさん
NGNGそこら辺はBottom-UpやTop-Down、Middle(なんとか)の考え方が
Hibernateで説明されてたよ。
0287デフォルトの名無しさん
NGNG動かせるところは動かせばいい、と。
動かしながら文法エラーがみつかったら「Parse error」とか出せばいい、ってね。
0288デフォルトの名無しさん
NGNGユニットテスト
実行時エラーの可能性といったって、大して変わらないと思うけどね。
それを回避するためだけにフレームワークの使い方覚えて、大量に見づらいコード生成するって、これはやりすぎだ。
フレームワーク自体がメンテされない状況になったときのリスク犯してまでやることじゃない。
0289デフォルトの名無しさん
NGNGそれをユニットテストの責務に入れるなよ・・・
0290デフォルトの名無しさん
NGNGアクセッサ書くのはいやで、ユニットテスト書くのはいいの?
アクセッサ使ってれば型保証に関してはテスト書く必要ないと思うんだけど。
0291デフォルトの名無しさん
NGNG入れてないと、落とし穴にハマると思うよ。
フレームワーク自体のバージョンが変わったときに、
フレームワークを信用して作ったソフトが動かなくなったっていうのは、よくある話。
逆に、ORマッピングフレームワークやるからにはしっかりとテスト作らないといけない。
0292デフォルトの名無しさん
NGNGそれは、R→Oの段階だよね。
Mapの場合、O→Oの段階でもテストが必要になる。
0293デフォルトの名無しさん
NGNG>>290と一緒の見解。
あと、OR使った時は少なくとも自動生成したDAOに関しては
UnitTest書く必要はないと思うけど。
0294デフォルトの名無しさん
NGNGDynaBeanならR→Oは不要になるな。
0295デフォルトの名無しさん
NGNG爆笑。ClassCastExceptionが何のためにあるのかわかってない。Javaやめた方がいいよ。
VBかPHPかJavaScriptを奨める。
0296デフォルトの名無しさん
NGNG書いたSQLのテストは?
0297デフォルトの名無しさん
NGNG同じプロジェクトにいたら面倒臭そう。
0298デフォルトの名無しさん
NGNGhttp://www-6.ibm.com/jp/developerworks/java/030926/j_j-beck.html
> Javaは非常に悲観的だと思います。Javaのコンパイラに「このプログラムは実行
> できるか分かりません。だから実行しません」と言われたことがあるでしょう。私は、
> 悲観的な言語の安全性とは幻想である、ということに気づいています。
0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNGInteger a = 3;
Object o = a;
String str = (String)o;
これがClassCastExceptionになる以上は、ここでそんな話持ち出しても意味がない。
0301デフォルトの名無しさん
NGNGまさいこういうことじゃないの?
それに、XP的にいうと、
つまらないミスを回避するためだけに仰々しいフレームワークを導入するのは
You arn't gonna need it の原則に反するし。
0302デフォルトの名無しさん
NGNGXPの人数スコープ知ってる?
0303デフォルトの名無しさん
NGNGBeckはここでClassCastExceptionになるのが問題といってるので、ClassCastExceptionになってしまうのだから、そうならないようにする。
で、>>288のいうようにユニットテスト書くのであれば、ソース自体で保証して、テストが必要ないようにすればいい、という話。
> つまらないミスを回避するためだけに仰々しいフレームワークを導入するのは
> You arn't gonna need it の原則に反するし。
つまらないミスを回避するという目的があって、そのフレームワークがその目的を達成するなら、その原則には反しない。
0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNGで、そこでひっかからないためのユニットテストが必要になるわけだ。
class Hoge{
String torque;
String getTorque(){ return torque; }
void setTorque(String torque){ this.torque = torque; }
}
としておけば、getTurkeyはコンパイルエラーだ。
で、この例みて、そんなコード書くのがめんどくさい、というかもしれんが、このコードはツールで自動生成できる。
ユニットテストは自動生成できない。
0306デフォルトの名無しさん
NGNGnullが帰っては来るが実行時エラーになるかどうかはその後のコード次第。
0307デフォルトの名無しさん
NGNG例外がでなくても、意図した動きと違うだろ。
0308デフォルトの名無しさん
NGNG> ClassCastExceptionになってしまうのだから、そうならないようにする。
ORマッピングフレームワーク利用推進派は型安全マンセーなわけだよね。
ClassCastException起こるべきところで起きなかったら型安全マンセーな人は怒ると思うんだけど。
> ソース自体で保証して、テストが必要ないようにすればいい、という話
ソース自体の保証って、どっちにしろテストは書くのだから、ClassCastExceptionだけ回避できても
大した意味ないと思う。
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNGっていうか、ORマッピング使う意味って、型保証だけだと思ってるの?
0311デフォルトの名無しさん
NGNG> ClassCastException起こるべきところで起きなかったら
だから、型保証することで、ClassCastExceptionが起きないようにするってことだよ。
0312デフォルトの名無しさん
NGNG> ソース自体の保証って、どっちにしろテストは書くのだから、ClassCastExceptionだけ回避できても
> 大した意味ないと思う。
コンパイル時に型が保証できれば書かなくていいテストもある。
0313デフォルトの名無しさん
NGNGO-R mapperって存在する?
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG型保証したところで、大した意味無い(幻想)っていってるんじゃ。
0316デフォルトの名無しさん
NGNGHibernateのhbm2java?
0317デフォルトの名無しさん
NGNG型保証より、名前保証の方が大切な気がしてきた。
0318デフォルトの名無しさん
NGNGIterator it = lst.iterator();
if( it != null ){
while( it.hasNext() ){
Object[] aryObj = (Object[])it.next();
String strCcode = (String)aryObj[0];
String strCname = (String)aryObj[1];
String strBcode = (String)aryObj[2];
Date dtSdate = (Date)aryObj[3];
String strMname = (String)aryObj[4];
int intMprice = (int)aryObj[5];
・
・ 各インスタンスを使用した処理
・
}
}
型保証もヘッタクレもない。
これじゃRowSetDynaClassと変わらんじゃないか!
ていうか、いくら1テーブルに対して1Beanを作ってくれるとしても
表結合なんか日常茶飯事なんだから、これじゃ全然意味無いんだよ。
0319179
NGNGそうですよね
僕はそのことを疑問に思って先ほど質問したんです(>>179)
そんな事やるぐらいなら
素直にJOIN使ったSQL書いたほうがマシなのではないかと・・・
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNG確かに、それはいやだ。
0322デフォルトの名無しさん
NGNGまったくだ。
0323デフォルトの名無しさん
NGNGintMpriceって型がlongになったら、変数名全部変えるんだろうか、とか。
0324デフォルトの名無しさん
NGNGむしろ、配列のインデックスがselectで指定した順、っていうのが気になるけど。
select a, b, c ... ってクエリだとすると
Object[0] → a
Object[1] → b
Object[2] → c
になるらしいけど、こっちの方が可読性も低くなるし、危険じゃね?
0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNGMapスレ立ててそちらでやってくれ。
お前はMapを使い、俺たちはHibernate他を使う。
0327デフォルトの名無しさん
NGNGその「他」にMapが入ってるくせに
0328デフォルトの名無しさん
NGNG煽りではなくてマジ質問なんだけど、表結合の時はどうしてるわけ?
>>318見る限り、今まで書かれてきたHibernateのメリットがあまり見えないんだけど…
別の書き方とかあるの?
0329デフォルトの名無しさん
NGNG同意
表結合はどうすんの?
まさか、SELECTしてきたレコードに対してさらにSELECTするなんてオチじゃないだろうな?
それだったら、ただ単にORマッピングって言うのは
DBアクセスだけをラッピングしたものってことになる
0330デフォルトの名無しさん
NGNGテーブルに対して一個のJavaBeanつくったって意味ないじゃ〜ん
0331デフォルトの名無しさん
NGNG実際のところそうなのかもよ。
OODBなんかそうだよね。あれはリンク辿るけど。
0332デフォルトの名無しさん
NGNGえ?まじすか?
もしそうだとしたら
ORマッピングって
オブジェクト志向的にDBのテーブルを操作するだけのものってこと?
そんなんならあんま意味ないよね
カスケードとかはできるみたいだけど
表結合って頻繁に使うよねマジで
SQL一本書いたほうが逆に楽なんじゃない?と思うわけよ
俺はてっきり
表結合された感じのJavaBeanを自分で作って(もちろん定義ファイルも自分で書く)
それをマッピングツールが勝手にJOINしてくれて
レコードが返ってくる機能は当然あるんだろうなと思っていたわけです
0333デフォルトの名無しさん
NGNG>表結合された感じのJavaBeanを自分で作って(もちろん定義ファイルも自分で書く)
>それをマッピングツールが勝手にJOINしてくれて
>レコードが返ってくる機能は当然あるんだろうなと思っていたわけです
今までの書き込み見たら、誰だってそう思うよね…
俺もそう思ってたよ。
0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNGしません。せいぜいMap<String, Object>でキーがStringであることが指定できるだけです。
0337デフォルトの名無しさん
NGNG> ORマッピングって言うのは
> DBアクセスだけをラッピングしたものってことになる
基本的には、そう。
0338デフォルトの名無しさん
NGNGGenerics
0339デフォルトの名無しさん
NGNG> オブジェクト志向的にDBのテーブルを操作するだけのものってこと?
> そんなんならあんま意味ないよね
そうでもない。
0340デフォルトの名無しさん
NGNGマジで結合できないんかな〜
外部キーとか定義ファイルに書いてるみたいだけど意味なさそう・・・
DBアクセスとかのコードは普通にそういうクラス書いてラッピングしようと思えばできます
あとは個々のSQLごとにJOINするSQLのString入れればそれを表すBeanが帰ってくるように
するクラスを一つ一つ書いた方が楽なんじゃね?
DBの変更を考えるとこの方法って辛いけど
0341デフォルトの名無しさん
NGNGあんだけ活発なスレだったのに、>>318が出たとたんにOR派の書き込みが減ったことからして
かなりアヤシイよな・・・
0342デフォルトの名無しさん
NGNG> 今までの書き込み見たら、誰だってそう思うよね…
今までの書き込みは、アクセッサのみのクラスとMapの比較だからね。
ORマッピングとかHibernateとかとは、別問題。
今までの書き込みがあって、HibernateのJOINが使えないね、という話になる。
0343デフォルトの名無しさん
NGNG「一発でいろんなもの生成してくれる」
それだけのものなの?
DB変更には強いけど
書いてるソースが結局JDBCと同じならあんま使っても・・・
オブジェクト志向的に物を考えるのは、こういう場合には適さないのかもしれない
>>340のやり方は極端だが
オブジェクト志向的に考えることによって逆に難しくしているんじゃないかと思う
0344デフォルトの名無しさん
NGNGいや、Map派はもともと>>318のようなことを頭に入れて話してたはずだ。
そこですでに論点がずれていたんだ。
0345デフォルトの名無しさん
NGNGみんな今必死にしらべてます。(プ
0346デフォルトの名無しさん
NGNGMapとhibernateの間を取って、DBUtilsあたりにしとくか。
間取ってねーな。
0347デフォルトの名無しさん
NGNG今、100人規模のプロジェクトで、DBUtils使ってるよ。
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNGていうか、それ無しではO/Rマッピングツールの意義を問われかねない
今後のO/R派の書き込みに期待だ。
それまではcommonsで我慢だ。どっちにしろMapは嫌だから。
0351デフォルトの名無しさん
NGNGめんどい更新処理はHibernate使って、複雑なSQLの出力はDBUtils。
どっちかにする必要もないわけで。
Hibernateでまかなえれば、それに越したことはないんだけど。
0352デフォルトの名無しさん
NGNGおい、OR派出て来てくれよ!
マジでJOINはどうしてんのさ 煽りじゃないよ
おしえてくれ
出来ないのならマジで意味ないんですけど・・・
JOINって使いますよね?みなさん
318のやり方でやるの?
いみないっすよ
0353デフォルトの名無しさん
NGNGんなことするならPreparedStatementでいいと思うが…
ソース内での手間はかわらんし。サニタイスもしてくれるし
0354デフォルトの名無しさん
NGNGORマッピングツールの記事を
「SQLなんてもう書きたくない」
っていう見出しと一緒になっている
てっきりJOINとかは当たり前に出きるんだろうなと思ったわけよ
あるいは自分であらかじめViewとかつくっとけってことなのかな?
それならそれでOKなんだが
Viewも扱えないようじゃORマッピングにして逆に複雑にしているだけだと思う
0355デフォルトの名無しさん
NGNGデータベースを扱うプログラミングにマッチしているのは、
型宣言しなくていい言語だと漏れは思う。
0356デフォルトの名無しさん
NGNGHQLで書いたクエリから結果表クラス自動生成なんて難しくは
なさそうなんだけどな。
0357デフォルトの名無しさん
NGNG「JOINとかを汎用的(OOP的に)にするにはどういう風にすればいいのか?」
と考えたが、かなりムズイよね
仮想的なViewテーブルを最初からDBのほうに登録しておいて
それに対してJavaBeanつくったりとかできるんかいな?
>>353の言うようにふつうにJDBC使った方がわかりやすい
0358デフォルトの名無しさん
NGNGじゃあJavaはそもそもWebアプリに向いてないんですね・・。
0359デフォルトの名無しさん
NGNGそうだよね
ただ、反論がないところをみると現状ではそういうのって出来なさそう
0360デフォルトの名無しさん
NGNGOOPと、
DBUtilsの生成するMapを使ってデータベースにアクセスすることは矛盾しない。
0361デフォルトの名無しさん
NGNG俺が前にhbmでmany-to-oneやるサンプル見せただろ。
0362361
NGNG直に取り扱う事もできるし。柔軟にやりたかったらそちらを利用する。
ただ、俺だったらSpringと組み合わせてJdbcTemplateを利用する事を推奨する。
SQLExceptionが実行時例外に変換されるから、見通しが綺麗だし。
そもそもDbUtilsより色々出来る。
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNG叩くというかJOINはどうやるんだ?といったまでです
で、>>318のようになるんだったら意味ないじゃんということです
多対1とJOINは関係あるの?
ちなみに煽っていないです
0365361
NGNGちなみに関連クラスを Lazy Loding する事によって起こるオーバーヘッドは
普通にHibernateのキャッシュを有効に使えば回避可能。
とりあえず、俺は2次キャッシュまで利用してるけど、かなり良い感じ。
0366デフォルトの名無しさん
NGNGだから、どういったJoinが必要になるかによる。
Joinで取得したい別テーブルのカラムがあるのであれば、hbmで
マップしておいて、オブジェクト単位で外部キーから取得する。
そうではなく、複数テーブルがかなり入りくんだJoinが必須で
あれば、Jdbcで取得後BOを拡張してsetしていくやり方が必要。
ただ、入り組んだJoinを行うかどうかは設計レベルの問題も入ってくるね。
0367デフォルトの名無しさん
NGNGDBUtilsの生成するMapを使ってデータベースにアクセスすることは、DBUtilの範囲ではできん気がする。
データベースにアクセスした結果がDBUtilsによってMapのListが生成されるから。
0368デフォルトの名無しさん
NGNGそりゃ、RDBだったらストアドが一番マッチしてるにきまってる。
型宣言があってもいい。DB自体には型宣言があるわけだから。
0369デフォルトの名無しさん
NGNG0370361
NGNGてことで、そもそも>>318のような書き方は普通しないと思うけど。
まあ、>>147でも書いたけど更新系や単純な更新系、BO自動生成、
キャッシングという観点からみると、かなり効果的な選択肢だと思うよ。
0372デフォルトの名無しさん
NGNG>通常、一つのテーブルからデータ持ってくるだけでは済まないですよね
>ある情報をSELECTしてきて、さらにIDと日本語名のマスタから
>日本語名を取り出して表示させる場合とか
>SQLだとJOINすれば済みますが
↑こんな場合です
0373デフォルトの名無しさん
NGNG0374デフォルトの名無しさん
NGNG番号コテである必要がないんだから、スレごとに完結させること。
0375デフォルトの名無しさん
NGNGできるのはわかったから、じゃ、どうやるの、っていうのを示してくれ。
0376デフォルトの名無しさん
NGNGそれって良く使われるマスタ関連を2次キャッシュしておいて
表示時にキャッシュから取得して表示させるとか駄目なの?
SQL的には一回で済むよ。
データ量が半端なく多かったら、キャッシングの粒度は
変えないと駄目だけど。
0377デフォルトの名無しさん
NGNGたしか、前に例を挙げたと彼は言ってるけど
検索しても見つかりません
番号とか教えてください
0378デフォルトの名無しさん
NGNGうん、言ってることがなんとなくわかった
0379361
NGNGhttp://www.hibernate.org/hib_docs/reference/en/html/collections.html
0380361
NGNG0381デフォルトの名無しさん
NGNG>outer-join="true|false|auto"
おお!JOINあるじゃん やってみます
0382デフォルトの名無しさん
NGNGそれって日本語訳のページってあったよね
0383デフォルトの名無しさん
NGNGあれ古すぎです。
0384デフォルトの名無しさん
NGNG章番号違うけど
ttp://www.ozacc.com/library/java/hibernate/doc/html/collections.html
0385361
NGNGオススメです。
0386デフォルトの名無しさん
NGNG0387デフォルトの名無しさん
NGNG必死に勉強中(プ
0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNGQ,HibernateでJOINできるのか?
A,できる
じゃ勉強します
0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
NGNGMap万能、アクセッサのみのクラス嫌いの、自動生成くそくらえな人が現れました。
それに対して、静的保証の重要性を説きました。
例としてHibernateがよくでました。
>>47で、JOINの場合静的保証どころか名前もつけれてないということが例示されてました。
Hibernate使えねぇという空気が流れます。
そこに現れたのが>>361でした。
そして今は、みんな勉強中。
0392デフォルトの名無しさん
NGNG乙!
0393デフォルトの名無しさん
NGNGがんばってね。
0394デフォルトの名無しさん
NGNG乙、なんかTorqueの時も似たような事あったな。
0395デフォルトの名無しさん
NGNG法則どおり、バージョン3になったら非常に便利に使えるはず。
0396デフォルトの名無しさん
NGNG何でも聞けおれに
0397デフォルトの名無しさん
NGNG辻ちゃんと加護ちゃんどっちが好きですか?
0398デフォルトの名無しさん
NGNGHibernateで画像を回転させるには、どのようにアプレットを作ればよいですか?
0399デフォルトの名無しさん
NGNG最初から辻!
0400デフォルトの名無しさん
NGNG加護ちゃんがやせててもですか?
0401デフォルトの名無しさん
NGNGJAVA_3D_HOMEを設定する
0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNG0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG0406デフォルトの名無しさん
NGNGののが太ったら、HibernateとTorqueのどっちを使いますか?
0407デフォルトの名無しさん
NGNGおまえら今まで何やってたんよ
0408デフォルトの名無しさん
NGNGどうも、悲しいかな・・・勉強してくださいってことらしい・・・
もうさ、「え〜?」って感じ
だれか解説してくれたら
乳首くらいみせてもいいんだけどぉ
0409デフォルトの名無しさん
NGNG迷うなぁ ちくしょう 時間くれ
0410デフォルトの名無しさん
NGNG乳輪に毛は生えてますか?
その場合、英語のサイトを読むのがつらくありませんか?
0411デフォルトの名無しさん
NGNG今後も生えません
英語のサイトはエロなら読み倒す
0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNGそうでしたら、手鏡には気をつけるとして、このサイトのCreating Hibernate Persistence Objectsのところがbeanの参考になりそうです。
ttp://www.meagle.com:8080/hibernate.jsp
0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNGどんなソースを書いていたんだ?
0416デフォルトの名無しさん
NGNG幸いJOINした結果をごちゃごちゃすることがなかった。
なっちが卒業しても泣かずにすんだ。
サーブレットからJSPに渡すときはDBUtilsを使っていたのでそのまんま。
0417デフォルトの名無しさん
NGNGまさか警察に通報するとは思わなかった。
0418デフォルトの名無しさん
NGNGJOINするときは>>47みたいにしてたってこと?
それでよく今まで型保証がどうのと言ってたもんだ…
てか>>361がいなかったら終了だったからな
0419デフォルトの名無しさん
NGNG型保証のときは、基本的にHibernateとは独立した話
0420デフォルトの名無しさん
NGNGみんなオモチャとしてつかってただけなんじゃん
0421デフォルトの名無しさん
NGNGBook
+--authorID
+--title
Author
+--authorID
+--name
とかいうテーブル構造で、BookのインスタンスからAuthorの
nameを取り出す場合ってことだよな。
すくなくともWebObjectsのEnterprise Objectsフレームワークだと各テーブル間の
リレーションをちゃんとセッティングしておけば、
String name = (String)book.valueForKeyPath( "author.name");
で一発で取ってこれるぞ。ほかのも似たようなもんじゃないのか。
そういうことじゃないのか?
0422デフォルトの名無しさん
NGNGString name = book.getAuthor.getName();
0423デフォルトの名無しさん
NGNGそうなんじゃないかな〜って言う理解で俺は判断した
多分そういうことだろ?Hibernateって
0424デフォルトの名無しさん
NGNGString name = book.getAuthor().getName();
0425デフォルトの名無しさん
NGNG納得
で、そのリレーションが
キャッシュとかあるいは遅延とかできるってことなんではないかと思う
0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNGでもそうでない場合も多い。
0428デフォルトの名無しさん
NGNG設定ファイルだけじゃダメなんですか?
マンドクサイなぁ〜
0429デフォルトの名無しさん
NGNG(これ、型安全性の議論にも通じるね)
INNER/OUTER/LEFT/RIGHT JOINの類の結合条件は別にFKだけとは
限らない
もっとはるかに一般的な、「N個の表から新しい結果表を作る」
機能なんだから。
Hibernateのは、FKをベースに、DB表の親子関係をObject木に見えるように
構築してくれてるだけでしょ。これはJOINと同じものではないよ。
0430デフォルトの名無しさん
NGNGそれがどうマップされるか分からないんじゃ
怖くて使えないよね。
0431デフォルトの名無しさん
NGNGちなみに俺は>>100だけど、意図的に煽りをやっていた自分意外にも
「Map信者」が多くて驚いたYo (w
0432デフォルトの名無しさん
NGNGリンクのはりかたがヘンだったな
>>429〜>>431は = >>100です
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNG珍獣認定させていただきます。
0435デフォルトの名無しさん
NGNG適切な選択や射影が行えないために参照性能が低下してるなんてことは
ありませんか?
JOIN一発で済むことに、何度もSELECTが発行されている、なんてことは?
0436デフォルトの名無しさん
NGNG出てこざるを得ません
「大規模システム」なら当然ですね
NOT EXISTSでやればいいのにNOT INを使ってる、みたいな
初歩的な問題も結構見られますしね
0437デフォルトの名無しさん
NGNG「柔軟であるがゆえに仕様変更に強い」という特徴があります。
つまり、コード変更をせずにシステム変更に対応できる可能性が
高いんですよ。
この場合、「Unitテストが必要」どころか、コードに対するテストなんて
要らない訳です。
頻繁に仕様変更やカスタマイズが発生する業務系においては
これはクリティカルな問題だと思いますがね。
0438デフォルトの名無しさん
NGNGだからキャッシュを効果的に利用するって言ってるじゃん。
大規模システムを何故出してるかわからんが、EJB3.0でHibernateに近い
イメージが想定されてる事からも、EJBの策定チームは問題無いと判断
してるんじゃないの?
あとFKの話が出てるけど、DBでFKが設定されてようがいまいが
Hibernateはhbmファイルで判断するから関係無い。
うまくhbmファイルを書けてるかどうかだけが問題。
0439デフォルトの名無しさん
NGNG>>1-4あたりにパフォーマンス比較のリンクなかった?
0440デフォルトの名無しさん
NGNGあ、大規模システムってのは、「Mapなんか使ってらんねー理由」
としてそれが挙げられていたからですね。
ただの信条上の問題ではなく、ビジネス的に切実な問題になる
可能性があるケースが、それであると。
0441デフォルトの名無しさん
NGNGだからEJBでBMPとCMPが併用されていたように状況に応じて使い分ければ良い。
クリティカルな部分は普通にJDBC直で取り扱えば良いだけなんだから。
ただ、すべてが大変なSQLとは限らないでしょ。要はそういうこと。
0442デフォルトの名無しさん
NGNG> つまり、コード変更をせずにシステム変更に対応できる可能性が
> 高いんですよ。
Map使った場合にコード変更が必要なところが、ORマッピングだと変更しなくて済む可能性がある。
ex フィールド名変更
責任範囲が変わるだけ。
0443デフォルトの名無しさん
NGNGなんせはてなの日記に過ぎませんし、本人が
> この数字,信用するかは自己責任でお願いします.観測者であるアタシ以外に,
> この値が役立つ人がいるとは思わんが.なにせ測定環境とか明記してないし.
> #検証コードは恥ずかしくて,とても公開する気にはならんが.:-D
なんてことを書いてる訳ですから、まともなシステム屋ならこれを信用
できるとは思えませんが?
0444デフォルトの名無しさん
NGNGとりあえず、もうMap云々の話はやめようよ。くだらない。
0445デフォルトの名無しさん
NGNG0446デフォルトの名無しさん
NGNG>あとFKの話が出てるけど、DBでFKが設定されてようがいまいが
Hibernateはhbmファイルで判断するから関係無い。
うまくhbmファイルを書けてるかどうかだけが問題。
よかったそれが知りたかった
0447デフォルトの名無しさん
NGNG私にはあなたが頭ごなしに否定したくてしょうがないように見える。
0448デフォルトの名無しさん
NGNG> フィールド名変更
これは、Mapならコード変更は要らないでしょう。
無論、そのフィールドに対して実際に意味のある仕事が必要なら、
コード変更は必要でしょうが、jspとの間をスルーする程度なら、不要ですね。
逆に、型安全性の世界では、そういう場合にこそコード変更は
必須じゃないんですか?
0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNGさぁ盛り上がってまいりました
0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG>>436
についての回答は、いかがでしょうか?
0454デフォルトの名無しさん
NGNG0455デフォルトの名無しさん
NGNGバカの根拠をお教えください。
あなたはSQLのチューニングを行わないのですか?
いかに最近のDBMSの最適化されたクエリアナライザでも、そうそう
賢いものではありませんよ。
0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNGそのフィールドを参照するすべてのJSPでコード変更が必要だろ。
ORならマッピング先のフィールド名が変わるだけ。
Hibernateなら、XDocletのタグが変わるだけ
0458デフォルトの名無しさん
NGNGあまり美しくない気もするんですが。
メンテする人の立場になると、実装形態やクラスが分散されるのは嫌でしょう。
0459いなむらきよし
NGNG0460デフォルトの名無しさん
NGNGっていうか、適材ではないものを無理やり使ってるほうが、メンテ大変。
0461デフォルトの名無しさん
NGNGなるほど、DBのカラム名だけが変わった場合に、もとと同じ名前にマップ
する訳ですね。確かにMapならjspは変更が必要でしょう。が、そういう
ケースはレアなのではありませんか?
カラムが追加された場合はどうですか?
0462デフォルトの名無しさん
NGNGMapを使う方法はレガシーであるというだけで、別に適材じゃないとは
思いませんが。
0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNG単語の意味も使い方もわkらん 誰か解説してくれ
0465デフォルトの名無しさん
NGNG直訳だと「遺産」ですね
なんか古くてボロっちいの
ラッパーが必要な奴
そういう意味で使われることが多いですが
ベンダが「新しい製品を買ってくれ」という意味で使ってるだけのことも
多いです
0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNGカラムが追加される、ということは、エンティティの性質自体が変わるわけだから、ロジック自体に影響がある。
それに伴ってコード変わるだろ。
それとも、セッターゲッター新たに書く必要があってコードが変わるだろ、Mapならそこに関しては関係ないみたいな、くだらんレベルの話?
0468デフォルトの名無しさん
NGNGのUnix文化マンセーですね。テキストは便利ですよ。同じ方法で
透過で扱えますからね。
メインフレームはほんのちょっとしか触ったことがありませんが
データセットにレコード長その他の様々な属性があり、これがもう
RDBの物理設計をやるのと同じなワケです。ただのファイルなのに。
0469デフォルトの名無しさん
NGNG古くから普及していて、今でも使われている、という感じ。
0470デフォルトの名無しさん
NGNGそういう「くだらんレベル」は重要でしょ?仕事でやってんなら。
コーディングが発生するかどうか、テストが発生するかどうか、
カスタマイズや仕様変更に対する柔軟性はどうか
で、カラムが追加されても、たんに右から左に流すだけでロジックの性質には
変化が無い、といったケースは意外と(というかかなり)多いはずですよ。
0471デフォルトの名無しさん
NGNGうん、じゃあ、カラムが追加された場合は、Bean変更する必要があってめんどくさいね。
ORマッピングのよさは、DBの変更がマッピング部分に集中できる、ってことで、変更点が減るわけじゃないからね。
フィールド名が変わった場合もマッピング部分は変える必要があるわけだし。
0472デフォルトの名無しさん
NGNGそれか異常に時間をもらえてるとか。
0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNG数人だから余裕ですね
0475デフォルトの名無しさん
NGNGんですか?
0476デフォルトの名無しさん
NGNGええ読んだことありませんね。
型安全性が無い点も理解してますし、その問題も分かってるつもりですが
一方その便利さも理解してます。
で、EJBでは大げさすぎるがMapの型安全性の無さが問題になってくる
領域の幅ってのは、どれぐらいなんでしょうかね。
0477デフォルトの名無しさん
NGNGごめん実装者が10人以上ってことね。
0478デフォルトの名無しさん
NGNG画面数1桁以内程度かな?
0479デフォルトの名無しさん
NGNGロジック書く奴が10人以上ということは、億単位でしょうか?
そういうのにこういう怪しげな奴を突っこむ度胸は私には無いですね
あなたは、そういう案件に実際に適用してるんですか?
0480デフォルトの名無しさん
NGNGその程度ならMapで余裕でしょ
つか一人で作れるでしょ
まあ画面の中で何か膨大な仕事をやってるんなら別ですが
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNGソースに目を通して自分でどうにかする根性があれば、怪しくないでしょうね
でも億単位の案件なら、ベンダの製品サポートが存在する(責任をなすり
つけられる)ことは、非常に重要でしょ。
0483デフォルトの名無しさん
NGNG思ってたんだけど、間違えてるかな。
そこら辺のフレームワーク使ったプロジェクトで結構億単位のものは
多かったような。
別にHibernateだけの話じゃないよね、ここって。
0484デフォルトの名無しさん
NGNGんじゃないの?
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNGはい
http://www.hibernate.org/148.html
0487デフォルトの名無しさん
NGNGええと、これ実際に利用してる方、いますか?
適用例とかがあれば是非伺いたいものですが。
0488デフォルトの名無しさん
NGNG日本での知名度は分かりきってる話だし、ここではそれを前提において話を
しているわけでしょ。
あなたが本当にプロジェクトを自分のスキル範囲で確実に成功させたいので
あれば、今までのやり方でやるべきだと思うよ。
0489デフォルトの名無しさん
NGNG利用者になっているか、なっていないかの違いだと思う。
0490デフォルトの名無しさん
NGNG熟練した利用者になるため。に読み変えといて。
0491デフォルトの名無しさん
NGNG怖いのは、分かってるつもりと理解してるはず。
0492デフォルトの名無しさん
NGNGEJBじゃない?
ORマッピングフレームワークっていったときには、EJBやMapはとりあえず含まれないと思う。
0493デフォルトの名無しさん
NGNG代理店とサポート拠点がなきゃあ、使うのに躊躇するぞ。
0494デフォルトの名無しさん
NGNGMapでやるのもいやだけどな。
それなりに評価して適用すればいいんじゃないの?
「怪しげ」だからと評価もせずに便利そうなツール使わないのはもったいないし。
0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNGEJBはSLSBで、DAOはフレームワークで提供ってベンダーもあるよね。
0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG実装に関することでかなわなければ、「億単位のプロジェクトでつかえるのか」って。
そんなん要件によって評価するだけだから、場合によって変わるのに。
0499デフォルトの名無しさん
NGNG>>454
0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNGちょっと違いますね。
ちょっと突っこむと
「RO-Mappingが有効かどうかは要件による」
という話が出てきますので、その有効な要件は具体的にどんなだ
と聞いてるだけですよ。
0503デフォルトの名無しさん
NGNG燃料が入るとよく燃える
0504デフォルトの名無しさん
NGNGでその答えがでてきたら、Mapで十分と返せばいいってわけですね。
大した燃料です。
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNG答えって、>>478とかですか?
いえ、あの程度なら一人でやれるプロジェクトですから、
「型安全性は保証しとかないと多人数のプロジェクトはやってけんぞー」
という他の声とは矛盾している訳です。
0507デフォルトの名無しさん
NGNGそんなものは普通一回書いたら終わりですね
Mapを使うにしても
0508デフォルトの名無しさん
NGNG現実はスキーマがちょくちょく変わるって話と矛盾する。
0509デフォルトの名無しさん
NGNGいえ、UPDATE文はMapを使う場合は動的に作るでしょう。
ですので、「一回書いたら終わり」は、executeUpdate()を実行する
コードですね。
0510デフォルトの名無しさん
NGNG100以降、何度も、こういう場合はHibernateが楽でいい、とかいろいろ出てるよね。
0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNGで、あなたの見解はどうなんですか?
0513デフォルトの名無しさん
NGNG用意したデータだけ更新するような場合に限るんじゃないの?
それならHibernateならそもそも用意されてるからなにも書かなくても終わり、ってことになるよ。
データ取得しながらその結果を元に更新する場合とかはめんどくさいと思うんだけどなぁ。
0514デフォルトの名無しさん
NGNG普通そうするでしょう。
キーとカラム名のマッピングを設定ファイルに落として変換するのも
別にどうということもありませんね。
0515デフォルトの名無しさん
NGNGそれで十分らしい
0516デフォルトの名無しさん
NGNGHibernateはSELECT FOR UPDATEによる行ロックをサポートしているのですか?
0517デフォルトの名無しさん
NGNGあ、この人は、自分のまわりに起こってることは他の人のまわりにも同じように起こってると思ってるらしい。
0518デフォルトの名無しさん
NGNGMapの名前ベースのスキームは設定ファイルとの相性が極めていいのが
強みです。
特殊化されたコードは一行も書く必要がありませんね。
0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNGあんた、笑われてるよ。
0521デフォルトの名無しさん
NGNG普通してる。
0522デフォルトの名無しさん
NGNGで、それの何が具体的に悪いのですか?
>>520
どうぞ。
0523デフォルトの名無しさん
NGNGそれは、transactionのisolation levelの設定によって、ですか?
ちょっと興味があります。
0524デフォルトの名無しさん
NGNGttp://www.hibernate.org/hib_docs/reference/en/html/transactions.html
> LockMode.UPGRADE may be acquired upon explicit user request
> using SELECT ... FOR UPDATE on databases which support that syntax.
0525デフォルトの名無しさん
NGNGあんたのは型付けのしっかりしているJava言語仕様を自分なりに
歪曲して理解しているだけ。
あんたの中で整合性が取れていても、他の人には俺様以外の何者でもない。
この解釈は間違えてる?
0526デフォルトの名無しさん
NGNG0527デフォルトの名無しさん
NGNGそんなこというと、ベックが引用されるぞ。
0528デフォルトの名無しさん
NGNGえーと、Mapを使うかDynaBeanを使うかPOJOを使うかというのは、
Java言語仕様とは全く関係のない、プログラミングスタイルの
問題ですね。
どれもこれも「Java言語仕様」の範囲にあるクラスでありオブジェクト
なのですから。
0529デフォルトの名無しさん
NGNG型安全性とオブジェクト指向を同列に論じている人を見ると
奇特な方だなあとは思いますが。
0530デフォルトの名無しさん
NGNGお前はお前で自身を持ち過ぎ。もうちょっと時代の流れを読め。
0531デフォルトの名無しさん
NGNGスレ違いに気づいていますか?
0532デフォルトの名無しさん
NGNGなるほど、クエリとしてSELECT FOR UPDATEを明示的に指定すれば
行ロックモードが獲得されるということですか。
Hibernateにおいて実際に使う場合、テーブル・オブジェクトに対して
常に二種類のSELECT文を定義する必要があるということですか?
0533デフォルトの名無しさん
NGNGどこらへんが?
0534デフォルトの名無しさん
NGNGJava⇔RDBのMapping-Frameworkを語るスレ
別にくだらないMap主義について語るスレではない。
0535デフォルトの名無しさん
NGNG本当に私の発言が「無関係」だとでも思ってるの?
ま、「退屈だ」と思うのはしょうがないよ。でも、それはスレ違いとは
また別の話だよね。
実際には関係があるからこれだけスレが伸びている訳です。
0536デフォルトの名無しさん
NGNGお前意図的に釣ってるだろw、むしろ関係なさ杉
0537デフォルトの名無しさん
NGNG伸びたスレの内容がどうしようもない訳です。
0538デフォルトの名無しさん
NGNGまあそれは私一人の責任ではありませんので、あしからず。
0539デフォルトの名無しさん
NGNGだそうです、終了。
0540デフォルトの名無しさん
NGNG0541デフォルトの名無しさん
NGNGっていうか、電源いれっぱなにしとけば、それすら必要ないじゃん。
0542デフォルトの名無しさん
NGNG信頼性や容量確保したければ、台数用意して、P2P分散データベース。
なんだ。
ファイルもXMLもRDBも必要ないね。
0543デフォルトの名無しさん
NGNGアボソできないじゃん
0544デフォルトの名無しさん
NGNGみな枠からはみ出れないもんですよ
0545デフォルトの名無しさん
NGNG下手に新し物好きが採用すると
大体泣きを見ますからね
0546デフォルトの名無しさん
NGNG全然別の話じゃないのかね。
このままいったら、配列があれば良いって話になっちゃうぞオイ。
0547デフォルトの名無しさん
NGNGMap信者は私一人ではないようですよ(w
0548デフォルトの名無しさん
NGNGGoogle 的だね。
0549デフォルトの名無しさん
NGNGそれ、ソフトのアップデートとかで泣きを見ませんか?
0550デフォルトの名無しさん
NGNGマジレスは厳禁です。
0552デフォルトの名無しさん
NGNG盲目的にMapがいい、って言ってるのはひとりだけな気が。
あと、Hibernateどうよ、っていう意見がすなわちMap信者というわけでもない。
0553デフォルトの名無しさん
NGNGマップというのは、必要十分なソリューションである気がするが。
0554デフォルトの名無しさん
NGNG曖昧すぎ
0555デフォルトの名無しさん
NGNGそうなるとクラスローディングのコストもバカにならないんちゃうかな。
0556デフォルトの名無しさん
NGNGそんなもん、データ自体のオブジェクトに比べれば盗るにタリン
0557デフォルトの名無しさん
NGNGってか、もしかしてJOINの組み合わせごとにマッピングクラス作るつもり?
0558デフォルトの名無しさん
NGNG05591
NGNGすげー伸びに驚愕してまつが。。。
メリットとデメリットの両方があるので、適用したいプロジェクトに
うまくハマるかどうかの見極めが重要だと思います。
漏れ、直近のプロジェクトでHibernate2.1.3を使ったんですけど、
途中で、微妙にテーブル構成が変化することが多い、最初の設計が
ややゆるめ(悪い言い方をすれば、仕様が曖昧)なものだったんですが、
マッピングされたbeanを使うアプリ側の変更がほとんどしなくて済んだので、
こういう場合には有効かなと思ってます。
あと、jFaceDbcとかHibernate SyncronizerなんかのEclipseプラグインを
使ってマッピングクラスを自動生成すると、かなり楽でした。
んで、マッピングクラスのgetter系メソッドを結構修正することが多かったんですが、
extendして使うと更に使いやすい。
これは、Cayenneでは標準的な使い方ですよね。
0560名無しさん
NGNG> これは、Cayenneでは標準的な使い方ですよね。
Generation Gap パターンすね。モデリングツールからクラス自動生成するときに
勝手にやってくれるんで、えらい便利です。
エンティティに自分でコード書いて「振る舞い」持たせても、後からの
クラス自動生成に一切躊躇しなくていいんで。
Cayenne1.1 ではさらにエンティティに継承関係を持ち込むことも出来るらしく、
「リレーショナルな世界の親子関係って気持ち悪いなあ...」と思ってた自分には
かなり朗報で、これから試してみようと思ってます。
http://www.objectstyle.org/cayenne/modelerguide/modeling-object-layer/inheritance.html
0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNGTorqueはなんだか落ちぶれてきて、OJBは出遅れてて、JDOは鳴かず飛ばず、という印象があるんだけど。
0563デフォルトの名無しさん
NGNGCayenne のサイトからリンク貼られてたこんな blog が。
http://www.theserverside.com/blogs/showblog.tss?id=CayenneAndHibernate
Cayenne のサイトからリンク貼られるくらいだから、どちらかというと
Cayenne よりの内容なんですが、一読の価値はあるかも。
結局みんな EOF に憧れてるわけなんだなーとか(笑)
# WebObjects 買ってもらったものの、まだまだ
# Cayenne が楽しくて WO 触ってない人
0564デフォルトの名無しさん
NGNGなぜMapじゃない手法が求められてるかをしっかり勉強しなさい。
自分の知識だけで判断してたらスタート地点にすら立てない。
0565デフォルトの名無しさん
NGNGお前は文章を読む力を付けような。
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNG0568デフォルトの名無しさん
NGNG0569デフォルトの名無しさん
NGNGロゴがApacheっぽいのでパクリかと思った
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNG楽しいっすよ。楽しいし、何と言ってもラクチン。
もはや生の JDBC とかまったく触る気しないです。
最近ではちょっとしたツールで2〜3テーブルしか触んないようなのまで
Cayenne 使っちゃったりして。
そうなるともはや RDBMS を「単なる便利な永続化層」としてしか
使ってないですが、それはそれでいいんじゃないかと思ったりしてます。
RDBMS ありきでなく、オブジェクトをいかに効率よく永続化するか。
ODBMS 使えつー話のような気もしますが、使ったこと無くて分からんです...
0573デフォルトの名無しさん
NGNGで、
MapのKeyをそのときそのときで手打ちはよくないから定数化しよう
→Mapのための定数をまとめてクラス化しよう
→せっかくだから定数クラスにMapを継承させて
振る舞いも含めてクラス内に閉じるようにしよう
→クラス内に閉じてるんだからアクセサを定義してget(Clazz.FOO)から
Object getFoo()みたいな形でアクセスできるようにしよう
→アクセサだってメソッドなんだから内部で型チェックとキャストを
行うようにして Foo getFoo()みたいな形でアクセスできるようにしよう
→…アレ?
ってな感じで夢から覚めると。
keyをまともに管理しないと立ち行かなくなった辺りで得失が逆転して、
そこから先はBeanにしたほうがトータルで楽になると思われ。
0574デフォルトの名無しさん
NGNG使えば綺麗にSQL一回でいけない?
0575デフォルトの名無しさん
NGNGまあさすがに煽りも飽きたというか、ネタがね……
>>572
ODBMSは遊びならいいけど仕事なら勧めない
>>573
さすがに
んなことやってる奴はいないと思うけどね、君以外は。
機能や振る舞いが多いかどうかでクラスを作るかどうかを
判断するのは当たり前でしょ
「便利なツールが使えるから」じゃなくて、あくまでそこにクラスやオブジェクトが
設計として抽出されるか、が本道な。
ロジックがただのフィルタやパイプラインに毛が生えたようなもので、
DBのデータを「ただのデータ」として透過で扱いたいような場合は、
Mapがしばしば便利であるというだけで。
Map使う場合は汎用的なプロセッサのようなモデルで作るから、
> MapのKeyをそのときそのときで手打ちはよくないから定数化しよう
んなバカなことはしません。
0576デフォルトの名無しさん
NGNG設計をリレーショナルにしてれば、すでにそれに対応するオブジェクトがあるわけで、それを今までは手間を考えてクラスにしてないだけ。
「便利なツールが使えるから」クラスを作る。
ROマッピングの話で、そんなこというのはナンセンスだな。
0577デフォルトの名無しさん
NGNGプログラムで扱うデータであれば、それはエンティティだからな。
> Mapがしばしば便利であるというだけで。
というのこそ
>「便利なツールが使えるから」
やってるわけだね。
0578デフォルトの名無しさん
NGNG> 機能や振る舞いが多いかどうかでクラスを作るかどうかを
> 判断するのは当たり前でしょ
ここがそもそも間違ってるんだね。
機能や振る舞いの数は関係ない。
0579デフォルトの名無しさん
NGNG> ただのデータというが、意味があるデータなら、クラスになりえないデータはない
そもそも「意味がある」かどうかが、まず問題。
無論「業務上は」意味のないデータというのはあり得ないが、
「ロジックにとっては」意味の無いエンティティというのが実は結構
あるだろう。
そういうデータはロジックにとって透明であって欲しい訳で、
型やメンバといったものは一切気にしたくないし、
同じ方法で扱いたい。
要はクラス分けしてる状態よりは、もっと汎化された状態で扱いたいと。
機械的にフィールド毎に単純なバリデーションを適用したり、
データをフィルタリングしたり
(例えばクロスサイトスクリプティングのチェックやUCS文字セットの
中で一部の文字をマッピングするとか)といった仕事をするだけなら
Mapが条件に適合するってこと。一切特殊化されたコーディングは
不要だからな。ただし、valueの
型が不定では実際には不便でしようがないので、こういう用途で
用いる場合、俺は全部Stringにして使う。
Mapping frameworkでも、実際に「ロジックにとって」意味のある仕事
をする場合には、自動生成クラスを継承するか、それをUseする
ロジックを実装するだろう。Mapを使う場合も無論それは同じで、
透明でない部分はクラスを作ることになる。その部分がどれぐらい
多いのか?といったバランスの問題で、Mapが実際的かどうかが決まってくると
思うんだが。
0580デフォルトの名無しさん
NGNGだめだめやな。
> そういうデータはロジックにとって透明であって欲しい訳で、
> 型やメンバといったものは一切気にしたくないし、
> 同じ方法で扱いたい。
だからBeanに型もたせて、扱う場所では型を気にせずにすむようにするんでしょが。
Mapが便利な処理をする場合はBeanUtils#describe使えばいいだけで、マッピング用のBeanが自動生成できるならBean作った方がいいし。
0581デフォルトの名無しさん
NGNGMapを使うとしたらキーは普通自動生成で定数化しますよ。
あなたは、キーをいちいち文字列で書かせてるの?
さぞかし、スペルミスがまったくない素晴らしい人たちばっかりなんですね。
0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNGまたは、他の人も同じ組織のレベル、同じアプリケーションの種類、同じ規模のものを作ってると思ってる。
「普通」なんか、組織やら作るものの種類・規模によって違う。
0584デフォルトの名無しさん
NGNG05851
NGNG0586デフォルトの名無しさん
NGNGマッピングするためのxml設定ファイルはキーワードエラーすら出ないのに
0587デフォルトの名無しさん
NGNGん、マッピング設定の xml はツール使って DB スキーマから
リバース生成とかするんでないの?
0588デフォルトの名無しさん
NGNGvalueの型が不定のMapなんぞ渡されても使い物にならんよ
0589デフォルトの名無しさん
NGNGええと
> Mapを使うとしたら普通
ってのは、どっから出てくるんだ
脳内か?
0590デフォルトの名無しさん
NGNG使う腕がないから?
それなら、Mapにデータを持つ場合も同じ。
MapのデータをすべてStringにする、というなら、そのときに使うコンバータをBean→Mapのときに使えばいい。
0591デフォルトの名無しさん
NGNGいや、もとからMapで作る気なら最初からStringで設計するな。
だから、同じじゃないよ。
0592デフォルトの名無しさん
NGNG変数をID管理してたCOBOLerじゃないの?
0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNGODBMSはプログラミングはラク。
しかし今DBにどんなデータが入ってるかを把握するのが辛い。。
SQLの偉大さを知ったよ。。
0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNGStringで設計しない、なら、valueにどんな型が入ってるかわからないわけだよね。
>>588のいう「valueの型が不定のMap」じゃないの?
0597デフォルトの名無しさん
NGNG>>594
Object storeあたりかしら?
俺的には別にプログラミングが楽とも思えませんが……。
システム屋が普通にサポートするレベルの性能・保守・運用面を考えたら
地獄を見るだけ、でしょう。
壊れてもいい程度のデータの永続化に使うならいいかもしれませんね。
UnixのDBMの延長線みたいな感じで。ただ、それなら素直に
Berkeley DBでいいような気もしますが。pure java版のライブラリも
最近は利用できることですし、実は最近のはトランザクションや
チェックポイント、リカバリなんて機能もあるようですから驚きです。
どうせならperlのtie()風に透明に扱えるともっと便利なんですけど。
>>593
ハハハ、自分の無知をひけらかしているだけのレスですね。
コンパイラのシンボルテーブルのようなものを実装するのに
あなたはMapを使わないのでしょうか。あ、もしかしてC++の
std::mapなら型安全だから使うの?
くだらないね。
0598デフォルトの名無しさん
NGNGつくりました。
CayenneでORマッピング
ttp://www.fk.urban.ne.jp/home/kishida/kouza/cayenne.html
「日本語で書いてある」以上の意義はありません。
とりあえず使うだけ。
0599デフォルトの名無しさん
NGNGMap屋ですが、素晴らしいですな
ただ、以前Cayenneを一瞬だけ斜め読みしたときは、主キー生成部分がまだまだ
アマいのと、対応DBが不十分だったんで、その辺を書いてくれると
嬉しいのかなと。最近のはマシになってるようですからね。
ちなみにそこで挙げられてる
サンプルソースのような、Criteriaみたいなクラスを使った検索って
何がうれしいのか俺は分からないんですがね。マジで。
・どんなSQLが走るかトレースしてみないと分からない
・コードも別に全然短くない
・クエリを設定ファイルなどに切り出しにくく、明示的な
コーディングが必要
・オンメモリにリストを作っちゃうので大量検索に向かない
・誰もが知ってるSQL構文ではなくライブラリ独自の方法の学習が必要。
SELECT構文って本気で使うと複雑ですからね……
最悪ですね。
0600デフォルトの名無しさん
NGNG> その辺を書いてくれると嬉しいのかなと。
ま、使ってみましょうかね、という企画なので。
とりあえず使ってみれば、英語のドキュメント読む気にもなるかな、と。
> 何がうれしいのか俺は分からないんですがね。マジで。
分からないなら必要ないので使わなければいいだけの話で、使ってうれしい状況になれば何がうれしいのか分かると思うんですがね。
0601デフォルトの名無しさん
NGNG過去記事含めて貼ってみるテスト。
ダイコン時代のORM - 結果セット中心
ttp://d.hatena.ne.jp/higayasuo/20040708#1089245059
過去記事
ttp://d.hatena.ne.jp/higayasuo/20040609#1086738237
で、結果セットってのはどうよ?
俺はこういう場合はDAOでJDBC直書きでデータ抜くなりO/RMapされたBeanから値抜くなりして
Beanに詰めさせるもんで、O/RMapより一階層上のレイヤの話だと思ってたんだけども。
0602デフォルトの名無しさん
NGNG・ほとんどのSQLは、パフォーマンスで問題になることはない。
・ほとんどの問い合わせは、どんなSQLになるか興味ない。
・めんどくさいJOINを書かなくて済む
・明示的なコーディングをどっかでメソッドにして使いまわせばいい。
・烏合の衆にめんどくさいJOINを教えなくて済む
・烏合の衆が書いたSQLのtypeによる例外が減る
・オンメモリにリストを作っちゃうとは限らない。
・コード補完のおかげでフィールド名を覚えておかなくていい。
・なんにしろローカルなコーディングルールやフレームワークを作るだろうけど、そのドキュメントのメンテナンスはめんどくさい。
有名マッピングツールなら、ドキュメントが整備されてる。Cayenneもそのうち増えるだろう。
・なんにしろローカルなコーディングルールやフレームワークを作るだろうけど、それに比べればコードは少なくなる
0603デフォルトの名無しさん
NGNGDAOとEntityを分けて考えるというスタンスだからこれはこれでアリと思われ
0604デフォルトの名無しさん
NGNG> ・どんなSQLが走るかトレースしてみないと分からない
query.setLoggingLevel(Level.WARN);
とすれば、とりあえずどんなSQLが走るかログがでます。
> ・オンメモリにリストを作っちゃうので大量検索に向かない
performIteratedQueryを使ってResultIteratorを取得すればいいらしい。
でも、チュートリアルみると、あまり嬉しくないコードを書く必要がある気配。
なんか、全体的にキャストが必要なことが多い気がする。
> ・誰もが知ってるSQL構文ではなくライブラリ独自の方法の学習が必要。
> SELECT構文って本気で使うと複雑ですからね……
「本気で使うと複雑なSELECT」を書かなくて済むのはいいかも。
JOINがからむ場合とか。
楽ができる部分と、めんどくさくなる部分がある。
0605デフォルトの名無しさん
NGNGお前は確実に嫌われるタイプの人間だな。
自分の意見を押し付けすぎだし、書いている内容が批判中心で実が無い。
とりあえず、お前が望むレベルのOR/Mapper作ってみてくれ。
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNGなるべく設計レベルでうまくまとめるべき。で、PGとかではシンプルに書くと。
0608デフォルトの名無しさん
NGNG>>599は烏合の衆にSQLのテクニックを教えるのが好きなんだよ
0609デフォルトの名無しさん
NGNGノシ 同意
0610デフォルトの名無しさん
NGNG> 烏合の衆が書いたSQLのtypeによる例外が減る
要するに、DBアクセスコードを書いておきながらテストせずに
納入しますよと言ってるのか。大笑い。
こんなこと言ってるようじゃ、
> ほとんどの問い合わせは、どんなSQLになるか興味ない。
興味がある場合をつきつめているとは思い難いね。
> なんにしろローカルなコーディングルールやフレームワークを作るだろうけど、
SQLは作るまでもなく誰でも知ってるんですが。
>>604
> 「本気で使うと複雑なSELECT」を書かなくて済むのはいいかも。
> JOINがからむ場合とか。
JOIN一つ程度じゃ別に複雑じゃないでしょ。
UNION(ALL), MINUS, JOIN(OUTER, LEFT, INNER, RIGHT),
副問い合わせ,...
等々が複雑に絡み合う可能性があるのがSELECT文。
こういうのを一々メソッドならべて書く気?
テキスト形式のSQLなら、sqlplus, osqlといったコンソールのSQLクライアント
で実行可能なSQL文をそのまま書きゃいいだけ。慣れてる奴なら見れば
やってることはすぐに分かる。
0611デフォルトの名無しさん
NGNGおつかれさまです。
GUIツールがついてるのが新鮮ですね。なんか、面白そうかも。
0612デフォルトの名無しさん
NGNGスキル依存イクナイ
0613デフォルトの名無しさん
NGNGまず一番気になるのはパフォーマンスが出るSQLになってるか
ということだろ。
型の例外なんぞUnit Testでチェックすりゃいい。
SQLがコードまたは設定ファイルにテキストで書かれているならば、
grepしてDBAがチェックするのは簡単なことだ。
君ら、本気で業務で使ってるとは思えない発言が多いね、ほんとに。
0614デフォルトの名無しさん
NGNG>SQLは作るまでもなく誰でも知ってるんですが。
誰でも知ってるってソースは?
0615デフォルトの名無しさん
NGNG暴走しすぎ。お前は何年前の業務開発を基準に話をしてるんだ?
0616デフォルトの名無しさん
NGNGアフォか。
CayenneだのHibernateだのの新参のクラスインタフェースを知ってる人間と
SQLという歴史のある問い合わせ言語を知ってる人間を比べる気か?
前者にくらべりゃ、後者はほぼ「誰でも」だね。
まともな会社なら新人教育で教育することだ。
ま、あんたの会社は違うかもしれないがね。
0617デフォルトの名無しさん
NGNGhttp://d.hatena.ne.jp/higayasuo/20040708#1089245059
Typesafeでない代償は、細かいところで積み上げられ結局大きく
なってしまう。
0618デフォルトの名無しさん
NGNG今はSQLはパフォーマンスを気にする必要が無いといいたいの?
OracleでNOT EXISTをNOT INに書き換えたり、
WHERE句のカラムの順番を適切でないものに並び換えて実行して見ろっての。
どうせ、explain planやtraceなんてとったこともないんだろ?
0619デフォルトの名無しさん
NGNGMapping-Framework だとだいぶそのへんを吸収してくれてうれしい。
0620デフォルトの名無しさん
NGNGなんか書き込みが一昔のCOBOL厨みたいだな。
あんたが言いたい事もわかるけど、ここはそういう要素も解消できるように
考えていこうって所じゃないの?
まっさらなSQLだけで攻めるのも未来が無いよ。
0621デフォルトの名無しさん
NGNG0622デフォルトの名無しさん
NGNG普通にあるけど・・・
すべてのSQLでパフォーマンスを気にするかどうかとは別の問題では?
うちではクリティカルな所は熟練者に任せてるけど、流石にすべての
SQLを確認は厳しいよ。
0623デフォルトの名無しさん
NGNGSPまたは、Viewな。
それは基本だけど、DBMS依存にはなるよねどうしても。
トリガとかチェック制約ぐらいになると、入れたがらないDBAも多いね。
この辺は人によって見解や好みが違う。
0624デフォルトの名無しさん
NGNG> なんか書き込みが一昔のCOBOL厨みたいだな。
ワロタ。でも禿道。言い得てる。
0625622
NGNG考えてるんだけど駄目なのかなぁ。
ちょっと試した感じだと十分いけそうな気がするんだけど。
0626デフォルトの名無しさん
NGNGまあ、正直システムテストの一環でパフォーマンステストやって、
問題無さげなら通しちゃうこと、多いけどな。
ただ、生のSQLだと問題の抽出や修正は早いよ。grepでひっぱって
そのまま実行できる訳だからね。まあパラメタライズされてる
部分はいじる必要があるが。
0627デフォルトの名無しさん
NGNGJavaは表示に徹する
これ
0628デフォルトの名無しさん
NGNGこれ
0629デフォルトの名無しさん
NGNGOracleのSPは今どきJavaでもかけるけど、数年前に試したら
使い物にならなかったんで、避けてる。Oracleサーバプロセス内部で
実行されるAurora JVMのデキがウンコでね。
今でも避けたいDBAは多いだろう。
0630デフォルトの名無しさん
NGNGいいんじゃない?試してみる価値はありそう
0631デフォルトの名無しさん
NGNG誰が書くか
0632デフォルトの名無しさん
NGNG小規模でも構わないからどのDB依存にならない方法を見つけたいね。
0633デフォルトの名無しさん
NGNG0634デフォルトの名無しさん
NGNG別にDB依存でもいいや。むしろ関数使いまくり。
0635デフォルトの名無しさん
NGNGそれ以来、割り切ってDB依存するようになったね。
0636デフォルトの名無しさん
NGNGま、SPやViewにできる部分はいいけど、複合的な検索条件を
動的に生成しなきゃいかん画面とかは、どうしてもある罠。
カーソルの受け渡しが出来るかどうかとか、SPの能力も
どうしてもDBMS依存になるしな。
0637デフォルトの名無しさん
NGNGWHERE句の条件に関数含めなきゃいけないケースとかは、わりと
どうしようも無いよね。
DECODEだのNVLだのの類だとか。
NULLの扱いなんて基本的なところからして、DBMSによって違うし
(というか、Oracleが標準に準拠してないだけなんだが)
0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNGそうだよインデクスが効かなくなるからな、プンプン
つか、まあ俺は原理主義者じゃないから必要なときは使います
ごめん
0640デフォルトの名無しさん
NGNG関数インデックス・・・
0641デフォルトの名無しさん
NGNG0642デフォルトの名無しさん
NGNGこのスレは意味が無いと思われ。
他スレでやってくれないかな。
何も産まないフレーミング合戦やるより、このスレではO/Rマッピングという考え方が、
生産性向上とか効率につながるのかとか、意味のあるカキコしませんか。
その上で、
「O/Rマッピングに一瞬光を見たけど、やっぱSQL直書きのほうが効率的だわ」とか、
「やっぱしこれからはO/Rマッピングだよなー」とか、
いろいろな判断ができると思うんですよ。
ここんとこ、日本語で情報源を作ってくれる人とか増えてきたから、
どんどん有効な情報を共有して、使えるモノなら導入して、
定時で帰ろうぜ!(笑)
0643642
NGNG盲目的にO/Rマッピングに隷属する信者ばかりになりそうですね。
客観的かつ論理的なO/Rマッピング否定論ってのも、オモシロそうですな。
0644デフォルトの名無しさん
NGNGORマッピングは、いろいろな方針があるので単純にいい悪いを言うべきではないと思う。
つまり、ORマッピングという技術に対しての評価っていうのは、あまり意味がない。
なぜなら、SQLを意識せずSQLの場合より単純なコードでパフォーマンスも最適化されるような「理想的なORマッピングの実装」があれば、ORマッピングを使わない理由はないから。
実際には、トレードオフの部分があるから、それぞれの実装に対しての長所・短所をあぁだこぅだやるのがいいと思う。
HibernateだけをみてORマッピング使えねぇとか、CayenneだけをみてORマッピング使えねぇとかいうのは具の骨頂で。
Hibernateはマッピング先のオブジェクトがPOJOだから小回りがきくね。
HQLで、ほぼSQLでの操作ができるし。
パフォーマンスもチューニングしやすそう。
Cayenneはラップが厚いので、SQLを意識しないコードが書きやすい。
テーブルの関連をたどる処理が非常に書きやすい。
逆にSQLを意識したときは書きにくい
とくにキーの操作がやりにくい。
キーはすべて自動採番で、マッピングオブジェクトをそのプロセスだけで使う、というように条件をうまく選べばかなり楽ができる。
0645598
NGNGあまりチュートリアルに書いてないことを書いてます。
結局主キーでの並べ替えがわかりませんでした。
チュートリアルには主キーを使う操作があまり書いてないので、主キーの値を使うな、という方針なのだと思う。
どんな場合でも使いやすい、というわけではないツールです。集計はできない気配。
だけど、はまったときは楽々。
0646デフォルトの名無しさん
NGNG> 定時で帰ろうぜ!(笑)
つまり、電車があるうちに帰ろう、と。
0647デフォルトの名無しさん
NGNGおまいさんの勤務先では、就業規則に
「定時とは終電に乗れるまでの時間とする」
なんて定義されてるのかい?(w
ってマジレスはおいといて、
早めにあがりたいよな(w
0648デフォルトの名無しさん
NGNGどんどん帰りが遅くなるんだよ
0649デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNGCayenneで主キーでの検索やら並べ替えってどうするんだろう・・・
単純な検索だけはできるんだけど。
0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNGモデラーで DB からリバース生成した ObjEntity には DbEntity の
主キー項目がついてませんが、モデラー上で自分で追加してやれば
主キー項目も ObjEntity 上に持たせられます。
1.1 のモデラーなら、ObjEntity を選んだ状態で、アイコンの右から3番目の
"Create Attribute" を実行すると新しく空のアトリビュートが追加されるんで、
DbAttribute に DbEntity の PK 列、JavaType に対応する型を選んで、
ObjAttribute に適当な名前をつければ OK です。
で、マッピングされたクラスに PK 列が入ってればあとは単純で、
並べ替えは
SelectQuery query = new SelectQuery(Foo.class);
query.addOrdering("primaryKeyColumn", true);
List foo = ctxt.performQuery(query);
とか。
モデラーが自動で生成してくんないってことは、Cayenne の流儀に
反してるのかも知れませんが、自分はこーやってていままで特に
問題は出てないです、とりあえず。
いちいちモデラで作業しなきゃいけないからちとめんどいんですけどね。
(リバース生成じゃなくて、最初からスキーマもモデラで作ればいいのか..)
0653デフォルトの名無しさん
NGNGあと、集計というのが AVG とか COUNT とか MIN とかそういう集約関数
のことを指してるんでしたら、めんどくさいながらも一応使えるようです。
http://objectstyle.org/cayenne/examples/index.html
の SQL Aggregate Functions にやり方載ってました。
サンプルソース落としてこないと見れないんですが、コード上で
Expression 作ってという方法じゃなく、モデラー上で DerivedDbEntiry と
いうのを作って (赤、白、赤の三段重ねのアイコン)、そいつの spec に
max(%@) だのと書くようです。(そしてその ObjEntity を使う)
モデラーのドキュメントがまだあまり整備されていないので、spec を
どう書けばいいのか、詳しい使いかたは分からないんですが...orz
0654デフォルトの名無しさん
NGNG自分もそう思って、追加してみると、ObjectIdを設定して新規データを作成するときに「主キーがnull」というエラーが出るようになりました。
主キーが自動採番型になってるなら問題ないのだとは思いますが。
1.0です。
1.1ではなおってるのかな。
うひゃー、雷がすごいよ。
0655デフォルトの名無しさん
NGNGけど、気持ち悪い・・・
現実的には主キーはすべて自動採番にするだろうからいいとは思うけど。
0656デフォルトの名無しさん
NGNGcommitChangesで例外が出る。
データベースにcommitしたあとで、オブジェクト取得しなおすみたいなんだけど、そこで失敗するみたい。
ということで、必ず主キーのマッピングを追加したほうがいいみたいだ。でsetHogeId(...)で設定する。
実際のデータが登録されたあとで例外がでるので、タチが悪い。
こんな挙動されたんじゃ、怖くて使えないねぇ。
まだマイルストーンだから、リリースされたときには修正されるだろうけど、開発中でもこんな挙動するのは、そもそもの設計方針が悪そう。
0657デフォルトの名無しさん
NGNGHibernateと双璧を成していく予感もあるから、
オレも勉強してみよう。
0658デフォルトの名無しさん
NGNGコードの自動生成するとプロジェクトのリポジトリが膨らんで嫌だし、
必要なものだけクラスを定義してやるのが結局一番シンプルだと思うよ。
そうやって定義されたクラスは重要なものって認識するし、自動生成されたコードだと
何が重要なクラスか分からなくなる。
0659名無しさん@そうだ選挙に行こう
NGNG必要なものだけ自動生成すればいいんじゃないの?
0660名無しさん@そうだ選挙に行こう
NGNGプロジェクトだったら、自動生成など無くてもいいよな。
0661名無しさん@そうだ選挙に行こう
NGNGつたない経験だな。
0662名無しさん@そうだ選挙に行こう
NGNG主キーの処理をどうにかして欲しいとは思うが。
0663名無しさん@そうだ選挙に行こう
NGNG0664名無しさん@そうだ選挙に行こう
NGNG0665名無しさん@そうだ選挙に行こう
NGNGプログラマを信用しない、プログラマを束縛することを基本姿勢にしているツールって
よくみかけるんだけど、
これって結局プログラマ(そのマネージャ)のコミュニケーション力を信用しない、
いいコードを保つための工夫、アイデアを考えることをやらせないということにも
なってるんじゃないのか。
それをやる能力を出させないで、こうしたツールで縛るっていうのはリスクがあると思うよ。
ツール自体のメンテナンスされなくなったときはどうする? ツールの使用が変わって
今まで作ったアプリが動かないときは?
0666名無しさん@そうだ選挙に行こう
NGNG柔軟性が無いツールなら、逆にコスト高になる。
大体、こういうツール好きな香具師はツール学ぶコストを無視しすぎ。
0667名無しさん@そうだ選挙に行こう
NGNG0668名無しさん@そうだ選挙に行こう
NGNG0669名無しさん@そうだ選挙に行こう
NGNG各論は反論する余地があるだろうが。
>>665
> これって結局プログラマ(そのマネージャ)のコミュニケーション力を信用しない、
> いいコードを保つための工夫、アイデアを考えることをやらせないということにも
> なってるんじゃないのか。
自動化できる、本質的でない部分で、アイデアを考えるひまがあれば、本質的な部分で頭使った方がいい。
> それをやる能力を出させないで、こうしたツールで縛るっていうのはリスクがあると思うよ。
あたらしい、使えそうなツールを試さないリスクの方がでかい。
> ツール自体のメンテナンスされなくなったときはどうする? ツールの使用が変わって
メジャーなツールなら、致命的なバグを残したままメンテナンスされる可能性は少ない。
自分らで作ったフレームワーク・ツールの方がメンテナンスされなくなる可能性が高い。
もし致命的なバグが残ったままメンテナンスされなくなったら、自分でソースみてがんばる。
そういう致命的なバグは、自分が作ったソースで発生する場合の方がタチが悪い。
> 今まで作ったアプリが動かないときは?
アプリの寿命が短いから大丈夫。
> 大体、こういうツール好きな香具師はツール学ぶコストを無視しすぎ。
中心となる人物が学習すれば、あとの烏合の衆は通常のコーディングルール程度として使い方をとらえればいい。
0670名無しさん@そうだ選挙に行こう
NGNG>自動化できる、本質的でない部分
適材適所ではありますが
このOR/Mappingは自動化するまでもないことで自動化ようとしている場合が多いと思う。
だって、アクセサしかないクラスを自動的に作るんでしょ?
何の意味があるんだ。
> 自分らで作ったフレームワーク・ツールの方がメンテナンスされなくなる可能性が高い
そこは、リファクタリングでカバーするのが正しいと思うよ。
シンプルに作ればメンテナンスは簡単。
0671名無しさん@そうだ選挙に行こう
NGNG> アプリの寿命が短いから大丈夫。
いい状態のソフトなら、新しく作り直す意味はないはず。
>> 大体、こういうツール好きな香具師はツール学ぶコストを無視しすぎ。
>中心となる人物が学習すれば、あとの烏合の衆は通常のコーディングルール程度として使い方をとらえればいい。
それはそうだが、しかし、このOR/Mappingに関しては、
その労力を正しい設計、コーディングのためのコミュニケーションに費やすほうがいいと思う。
ツールっていうのはしばしば自由度が低くて、
ある要求がきた時点で、行き止まりになるか、突然険しい道になる。
0672名無しさん@そうだ選挙に行こう
NGNG> いい状態のソフトなら、新しく作り直す意味はないはず。
業務モデル自体が変わる。
上記の質問が出る時点で、業務アプリの経験がないことがわかったので、口出しは控えたほうがよいと思われる。
> だって、アクセサしかないクラスを自動的に作るんでしょ?
> 何の意味があるんだ。
手で作るより楽。確実。
Cayenneの場合、DataObject継承してるから、アクセサしかないクラスではないし。
0673名無しさん@そうだ選挙に行こう
NGNG>> いい状態のソフトなら、新しく作り直す意味はないはず。
>業務モデル自体が変わる。
それにしたって、最初からフレームワークの選択まで含めた作り直しはありえない
>> だって、アクセサしかないクラスを自動的に作るんでしょ?
>> 何の意味があるんだ。
>手で作るより楽。確実。
それはもう主観でしかないのだが、
漏れが思うにこれは型安全で解決する問題じゃない。
カラムに確実に正しい値が入る保証は常にあるシーンがあるとは思えない。
自動化されたテストで保証すべき。
0674名無しさん@そうだ選挙に行こう
NGNG>>> だって、アクセサしかないクラスを自動的に作るんでしょ?
>>> 何の意味があるんだ。
>>手で作るより楽。確実。
>それはもう主観でしかないのだが
いやぁ、実測しても手書きで作るよりは自動生成の時間も短いだろうし、間違いも少ないとおもうぞ。
0675名無しさん@そうだ選挙に行こう
NGNG> カラムに確実に正しい値が入る保証は常にあるシーンがあるとは思えない。
おまえはまず、考えを日本語にマッピングするフレームワークを使った方がいい。
0676名無しさん@そうだ選挙に行こう
NGNGなので、もう最初から単純なデータのやりとりのためにクラスを定義するのは止しましょう。
クラスを定義するのは(型安全にする以上に、たとえばそれがアプリケーションにおいてよく使いまわされる
核となるオブジェクトを定義するときのために)意味があるときだけにしましょう。
0677名無しさん@そうだ選挙に行こう
NGNG他に良い手段があるならね。
> それにしたって、最初からフレームワークの選択まで含めた作り直しはありえない
ありえるし。
むしろ、こんな局所的なフレームワーク、臨機応変だし。
0678名無しさん@そうだ選挙に行こう
NGNG>ありえるし。
>むしろ、こんな局所的なフレームワーク、臨機応変
マジですか。
確かにデータやり取りする部分が局所化できていれば、書き直しにはそんなに苦労しないしが。
だからこそ、クラス生成する技巧やるほどのことかどうかは謎になってくる。
0679名無しさん@そうだ選挙に行こう
NGNG> いいコードを保つための工夫、アイデアを考えることをやらせないということにも
> なってるんじゃないのか。
それを言ったらインタフェースや抽象クラスのabstractメソッドもいらない、
カプセル化もいらないってことにならないか?全部publicで作ればOK、みたいな。
ルール決めやその徹底、チェック等の工数も削減できるんだよ。
大規模開発経験無いな?
0680名無しさん@そうだ選挙に行こう
NGNG.NETからJ2EEとかJ2EEから.NETとか、VB6からVB.NETに比べれば、ぜんぜん楽。
新しく作るサブシステムから徐々に移行することもできるわけだし。
0681名無しさん@そうだ選挙に行こう
NGNG> クラス生成する技巧
これを技巧っていうくらいだから、そうとうレベルが低いんだろ。
0682名無しさん@そうだ選挙に行こう
NGNG> マジですか。
ねんのため、いうておくが、ビジネスモデルの変更にともなうシステム更新での話だぞ。
0683名無しさん@そうだ選挙に行こう
NGNG>カプセル化もいらないってことにならないか?
プログラマに単に自由を与えるのではなくて、
コードに表現力を持たせることが重要だと思うのだけど、
表現する自由が無くすのはよくないなと。
いいフレームワークなら表現力は上がると思うんだけど、
単にオブジェクトとデータベースのデータをマッピングするためのクラスを生成って、
これは表現力を薄くすると思う。
0684名無しさん@そうだ選挙に行こう
NGNG> 表現する自由が無くすのはよくないなと。
いらん。確実に動く方が大切。
0685名無しさん@そうだ選挙に行こう
NGNGいや、確実に動かすために表現力が要るといいたいのですが
0686名無しさん@そうだ選挙に行こう
NGNGPerlでも使ってろ。
同じコードを書くのに複数の書き方があるよりは、ひとつの書き方しかない方が、表現力は下がるが確実に動く。
0687名無しさん@そうだ選挙に行こう
NGNGプログラマに伝えることだから、フレームワークは表現といえる。
(とはいうものの、ORマッピングは何も表現しない、それどころか余計なクラスが
大量に作られるため、薄くしている。)
0688名無しさん@そうだ選挙に行こう
NGNGえっと、自覚のないアホは逝ってください。
0689名無しさん@そうだ選挙に行こう
NGNG> ORマッピングは何も表現しない
意味がわからんが。
接続のタイミングやトランザクションの使い方、JOINのやりかただとか、データの取得・更新の記述を限定させる役割はある。
0690名無しさん@そうだ選挙に行こう
NGNG0691名無しさん@そうだ選挙に行こう
NGNG片方があまりにもわけわかってないから、けんかになってない。
0692名無しさん@そうだ選挙に行こう
NGNG0693名無しさん@そうだ選挙に行こう
NGNG0694名無しさん@そうだ選挙に行こう
NGNG>>686
> 同じコードを書くのに複数の書き方があるよりは、ひとつの書き方しかない方が、
> 表現力は下がるが確実に動く。
コボラーの方ですか?
コーディング規約とか、好きでしょ。
C++とアセンブラについては、どう思いますか?
0695名無しさん@そうだ選挙に行こう
NGNGアフォですね。ていうか、プロジェクト切り回したこと、ないでしょ。
全部が自分で完結してる世界なら、これ以上楽な物はないわけですが。
0696名無しさん@そうだ選挙に行こう
NGNGコードをいかようにも書ける場合こそがコーディング規約の出番なわけだが。
コードの書き方が限定されていたら規約類もガチガチにしなくて済むんだよ。
0697名無しさん@そうだ選挙に行こう
NGNG新しいツールは自分が学習すればよろしい。
ですが、プロジェクトに導入するかどうかは別の次元の話ですね。
学習(させる)コストと対価を考慮に入れないとね。
RO-Mapping信者の主張するところの、フレームワークのメリットは
Fool Proofであること、バカにバカなSQLを書かせることを防げること、
といった、大規模三流業務開発向けのメリットな訳ですが、
実はそれは新し物好きの脳内理想論に過ぎなくて、現実を無視している
ようにしか見えないというのはそこのところです。
現実のRDBシステムには差異があり、システムには要求性能があり、
開発者の一人一人(特にバカ)にいちいち新しいフレームワークを
学習させる時間はないというのは現実なんですがね。
0698名無しさん@そうだ選挙に行こう
NGNGで、C++はどうですか?
・テンプレートは使わない(移植性がないから。つかメタプログラミングヲタの
コードはバカに読ませられないから)
・例外は使わない(移植性がないから)
・RTTIは使わない(移植性がないから)
・staticコンストラクタは使わない
:
:
とかやってる訳ですか。
C++のソースは移植するのが大変なことで有名ですが、それ以上に
プログラマ間の移植性が無いとも言われますね。
だいたい、自分の好きな周辺のみをいじくっているという。
0699名無しさん@そうだ選挙に行こう
NGNGグダグダなメンテ不能なコードが大量生産される理由はここにあり!
って感じでつね
0700名無しさん@そうだ選挙に行こう
NGNGいや、だからそれが現実なんですよ。
で、フレームワークを導入すれば未来がバラ色になると考えている
あなたこそ、脳味噌が腐っているとしか思えませんね。
所詮、使役される側の発想でしかない訳です。
0701名無しさん@そうだ選挙に行こう
NGNGはぁ?脳みそ腐ってませんか?
どこを縦に読むとそうなるんでつか?
0702名無しさん@そうだ選挙に行こう
NGNGどうせ*00マン程度のシステムしか作ったことないんだろ。
あまりにもプロジェクト運用の進め方がわかってないよ、この人。
0703名無しさん@そうだ選挙に行こう
NGNG> スキル依存イクナイ
> 烏合の衆に
うんぬんとのたまう方々が、一方ではフレームワークぐらい
学習しろよと平気でのたまう訳です。
俺なら、SQLを覚えさせますね。そっちのが確実に役に立つから。
0704not 700 ◆iKwMOjCT4s
NGNGメリットはクラス自動生成されることによる型安全、コンパイルエラーが出るだけ。
そんなの何の意味も無い。
0705名無しさん@そうだ選挙に行こう
NGNGで、何が分かってないのか、説明してごらん?
あんたはこのRO-Mappingとやらで一体どれぐらいの規模のやつを
作ったってのよ。
0706名無しさん@そうだ選挙に行こう
NGNGMDAの考え方とかご存知ですか?
0707名無しさん@そうだ選挙に行こう
NGNG俺は自動生成の話をしただけ、strutsのvalidation.xmlとか1000万超える
レベルになると自動生成使わないと信じられないことにならない?
0708名無しさん@そうだ選挙に行こう
NGNG自分の世界に入ってしまう人だねぇ。
関係ない話題持ち出してきて、それに固執する。
そりゃ、みんなでコーディングは向いてないよ。
0709名無しさん@そうだ選挙に行こう
NGNGあ、ようするに海外のえらい人が言ってることは鵜呑みにしちゃうひと
なわけね……
というのはさておいて、
XDocletやVelocityは、別にRO-Mappingとは直接関連がないでしょ。
有効と認めたら使う、認めなかったら使わない。
私は自分で判断しますね。そんだけです。
XPでさえ、プロジェクトによって有効かどうかは差異がある。
「銀の弾はない」ととっくの昔にバレてるのがソフトウェア・システム
開発の現状なんですから。
0710名無しさん@そうだ選挙に行こう
NGNGSQLよりはよっぽど個人差がつかない。
ちなみに、フレームワークといっても開発者に使わせるのは、その一部分だけ。
メインのアーキテクトが局所化して振るから、それほど学習コストはかからない。
0711名無しさん@そうだ選挙に行こう
NGNGOR-Mappingの自動生成で主に利用されてます。
別にXPが銀の弾丸とも言っていない。
ただ、縛りつけが嫌いなはずの欧米人が開発してるって事。
みんな、面倒くさいルーチンは嫌いなんだよ。
0712名無しさん@そうだ選挙に行こう
NGNG実際には、アーキテクトがいて三流開発者に振るようなケースでは、
そもそもSQLにタッチする部分は、書かせない、でしょ。
だから、差異はないとも言えるわけです。
あなたは「それほど学習コストはかからない」と言うが、
POJOを使うだけならゼロですね。ですがこれはMapも同じだ。
0713名無しさん@そうだ選挙に行こう
NGNGお前はえらい人関係なく、自分の意見しか信じないタイプだろ。
0714名無しさん@そうだ選挙に行こう
NGNGいや、そんなことはないですよ。
BillJoyタン、ハァハァとか
RichardStevensタン、ハァハァ、なんで死んじゃったのよとか
まあどうでもいい話ですな
0715名無しさん@そうだ選挙に行こう
NGNG> うんぬんとのたまう方々が、一方ではフレームワークぐらい
> 学習しろよと平気でのたまう訳です。
フレームワーク使って、中心人物が学習すれば、烏合の衆にはコーディング規約の一環としてフレームワークの使い方教えれば済む、というわけなのだが。
> 俺なら、SQLを覚えさせますね。そっちのが確実に役に立つから。
いいねぇ、時間があって。
そこからさらにコーディング規約とか、データベーススキーマの説明するわけだね。
もちろん、細かい使いわけまで教えるんだよね。
0716名無しさん@そうだ選挙に行こう
NGNGいくら3流開発者でも、流石にORM無しだとSQLを書かせざるえないだろ。
0717名無しさん@そうだ選挙に行こう
NGNG0718名無しさん@そうだ選挙に行こう
NGNGDBスキーマを理解してないやつにDBアクセスコードを書かせるなんて
そんな空恐ろしいこと、俺にはできませんが。
フレームワークを使えばそれが可能だとでも思ってるの?本気で。
0719名無しさん@そうだ選挙に行こう
NGNG0720名無しさん@そうだ選挙に行こう
NGNGさすがにDAOは、Access MDBのテーブルとかをマニアックにいじりたい
時ぐらいしか使う用途がないんじゃないでしょうか
プライマリスレッドからしかいじくれないというのは、今どき
かなり致命的でしょう。
0721名無しさん@そうだ選挙に行こう
NGNGORM使えば問題ないだろ?3流開発者へ割り振る仕事なんだし。
0722名無しさん@そうだ選挙に行こう
NGNGSQL使ったJDBCのコード書かせるほうが、もっとこわい。
0723名無しさん@そうだ選挙に行こう
NGNGこのレベルかよ・・・もう寝よ。
0724名無しさん@そうだ選挙に行こう
NGNGひとりで組むんでも、有効だとおもうぞ。
0725名無しさん@そうだ選挙に行こう
NGNGどうせなら、バカにする理由ぐらいは教えて欲しいものですな
後学のためにも。
0726名無しさん@そうだ選挙に行こう
NGNG> あなたは「それほど学習コストはかからない」と言うが、
> POJOを使うだけならゼロですね。ですがこれはMapも同じだ。
Mapの場合、プロジェクト独自のルールで使うわけだから、ORマッピングと同等に使うなら、それなりに学習コストがあるとおもうぞ。
0727名無しさん@そうだ選挙に行こう
NGNGくまー
0728名無しさん@そうだ選挙に行こう
NGNG0729名無しさん@そうだ選挙に行こう
NGNGそうですか?
だいたい、「怖い」って、あなたテストもせずに納品するんですか?
生のSQLだと、実はコードや設定ファイルからSQLを抽出することは
簡単にできるので、問題を防げることが多いですよ。
という話は前にも書きましたがね。
0730名無しさん@そうだ選挙に行こう
NGNGここ来るならDAOパターンくらい頭に入れた上で議論しろよ。
0731名無しさん@そうだ選挙に行こう
NGNGごめんね。
0732名無しさん@そうだ選挙に行こう
NGNG0733名無しさん@そうだ選挙に行こう
NGNGプ、必死ですね。
0734名無しさん@そうだ選挙に行こう
NGNG0735名無しさん@そうだ選挙に行こう
NGNG0736名無しさん@そうだ選挙に行こう
NGNGマジっぽいな。反論がぴたりと止んだ。
0737名無しさん@そうだ選挙に行こう
NGNGORMの文脈でのDAOについて私が発言していることは分かるでしょう。
たとえば>>121とか>>131とかですな。
今ちょっとDAOでMSライブラリの話が思い浮かんだのは
極めて個人的な理由なので、あまり触れたくありませんな。
0738名無しさん@そうだ選挙に行こう
NGNG> だいたい、「怖い」って、あなたテストもせずに納品するんですか?
あのぉー、問題のレベルが違うんですが。
テストしたところで、確実なテストはできないし、そもそもの品質が低ければ、修正コストもばかにならんし。
結果さえ表向きよければ、途中は何が起ころうと、時間がかかろうと、問題ないわけ?
0739名無しさん@そうだ選挙に行こう
NGNG高度に練りこんだネタだよな?w
0740名無しさん@そうだ選挙に行こう
NGNG0741名無しさん@そうだ選挙に行こう
NGNG同一人物なんて分からんよ。認識して欲しかったらキャップ付けろ。
0742名無しさん@そうだ選挙に行こう
NGNG> テストしたところで、確実なテストはできないし
プゲラ
あのーお客さんのDBいじるのに、確実に動くかどうか分からない
その程度のやつを納品するのね、あなたは。
SQL直書きで、ちゃんとSQLが意図通りに動いてるかどうかの確認なんて、
簡単でしょ。
極めて繊細なレースコンディションのテストしてる訳じゃないんだからさ。
0743名無しさん@そうだ選挙に行こう
NGNGVBにはOR-Mapperが無いからな。
0744名無しさん@そうだ選挙に行こう
NGNGあ、俺は>>100ですよ。まあキャップつけてもいいんだけどさ、
別に認識してほしいってほどじゃない。
0745名無しさん@そうだ選挙に行こう
NGNGプゲラ
発想が極端過ぎ。
0746名無しさん@そうだ選挙に行こう
NGNGOR/Mappingと比べて、SQL直書きの方が検証が大変だと思われるんですが
すべてのSQLに目を通してテストされてるんですか?
0747名無しさん@そうだ選挙に行こう
NGNGそうかな。
MSのDAOライブラリを使って便利なのって、今どきはAccessのMDB
いじるときぐらいだと思うけど。
普通はVB厨御用達なのは、今どきADOでしょ。ただしそれも6.0以前限定で、
.NETだとADO.NETね。
0748名無しさん@そうだ選挙に行こう
NGNG言いたい事はわかるが、ここでそんな話になる事自体おかしい。
0749名無しさん@そうだ選挙に行こう
NGNGどんな低スキルなプログラマに何を担当させてもテストするのなら怖くないの?
0750名無しさん@そうだ選挙に行こう
NGNG0751名無しさん@そうだ選挙に行こう
NGNG検証って、何のことを言ってるのかな。
「何がどう大変」になるのか、説明してくれる?
「入力に対して想定した結果がDBに格納されていること」を
テストするなら、実装によって差異は生じませんね。
性能のチェックをするならば、同じくどちらも同じですが、
机上でSQLのチェックをするのであれば、直書きの方が圧倒的に
すぐれていますね。見りゃ、どういうSQLが送られるかすぐ分かるから。
0752名無しさん@そうだ選挙に行こう
NGNG0753名無しさん@そうだ選挙に行こう
NGNG0754名無しさん@そうだ選挙に行こう
NGNG良く分からんが、そもそもSQLのチェックなんて必要ないだろ。
あんたの言う、型チェックまで入った自動テストが通っているのであれば。
0755名無しさん@そうだ選挙に行こう
NGNGなんだ、君らその程度の煽りでプライドを保つぐらいしか
脳がないのね。
DAO層の概念ぐらい知ってるっつーの。って、>>737で説明したでしょ。
0756名無しさん@そうだ選挙に行こう
NGNGそこで煽るお前の方が脳が無い事に気づけ。
0757名無しさん@そうだ選挙に行こう
NGNG0758名無しさん@そうだ選挙に行こう
NGNG信じ難い書き込みを見た。
あのさ、型チェックが通ればいいとでも思ってるの?
「コンパイルが通れば、いい」と同じレヴェルの発想だぜ、それって。
あなたの脳内にはシステムテストも運用テストも性能テストも
無いんでしょうな。
0759名無しさん@そうだ選挙に行こう
NGNGプログラマにやらせると人によって微妙に違ってくるからやっかい。
0760名無しさん@そうだ選挙に行こう
NGNGごめん俺コボルは知らないんだ、新参だから。
CとかC++とかなら、わかるよ。
0761名無しさん@そうだ選挙に行こう
NGNGお前は馬鹿か?
自動テスト内で、参照や更新ロジックの整合性が証明されてるのは当然だろ?
なんで、さらにSQLを洗い出してテストする必要があるんだよ。
型チェックが入ってるって書いたのは「皮肉」だ。
0762名無しさん@そうだ選挙に行こう
NGNGそれを分からず、全員にSQLを書かせようと意気込んでるようです。
0763名無しさん@そうだ選挙に行こう
NGNGえーと、OracleのSQLのオプティマイザの能力がどの程度か知ってる?
いや勿論素晴らしいんですが、オプティマイザだけじゃ限界があるから、
プランをコストベースにするかどうかとかを、ユーザサイドが設定するし、
SQL自体のチューニングもやっぱり必要という世界な訳です。
「品質が一定」って、何なの?要するに、コーダーに好き勝手に書かせて
放置してる訳じゃないんでしょ?
しいて言えば、ただのSQLの場合、Javaのコード程は品質に差が生じない
でしょう。「やれることが限られてる」から。
0765名無しさん@そうだ選挙に行こう
NGNGいやだから、整合性テストだけじゃ性能や、トランザクションのインプリが
正しく行われてるかは、確認できないでしょ?
DBのトランザクション絡みは、突き詰めればレースコンディションの
話になるから、単体自動テストでどうにかするのは、限界あるよ。
0766名無しさん@そうだ選挙に行こう
NGNGORMよりSQLの方が品質に差が出るに決まってるだろ?
そもそもDBはすべてOracleを使うのが前提なのか。
ヤバイ所はViewにして、後でオプティマイズ書ければいいだけの事。
0767名無しさん@そうだ選挙に行こう
NGNG0768名無しさん@そうだ選挙に行こう
NGNG違う。Oracleはもっとも有名でメジャーなRDBMSだから例に出してるだけ。
他も似たりよったりかよりひどいだけだよ。
> ヤバイ所はViewにして、
ようするに、Viewという形のstaticなSQLで済む場合しかあなたは頭に
ないわけね。
そんなの出来るところはそうするのは、常識以前の問題。
0769名無しさん@そうだ選挙に行こう
NGNGトランザクションの制御は宣言的にやるから、XMLチェックだけで良い。
性能テストはボトルネックになる箇所だけチェックすれば良い。
0770名無しさん@そうだ選挙に行こう
NGNGで、ボトルネックをテストする前から特定できるの?あなたは。
まあ、想定は出来る場合はあるだろうけど、やってみなきゃ確証は
とれないよそんなの。
0771名無しさん@そうだ選挙に行こう
NGNG物知らないのに、議論に加わりたがるんだよね。。
0772名無しさん@そうだ選挙に行こう
NGNGつまり、プログラマ依存またはDBMS依存なわけね。
使うDBMSによって貴方のシステムは品質が大きく左右されるわけだ。
0773名無しさん@そうだ選挙に行こう
NGNGお前煽りすぎ。そもそもお前が危惧してるようなSQL書いてみてよ。
実際はViewレベルで解決できるケースがほとんどだよ。
0774名無しさん@そうだ選挙に行こう
NGNGは?何当たり前のこと言ってんの。
ユーザがバカ高い金だしてOracle使うのは何のためだと思ってるんだか。
Oracle要らないんなら、Berkeley DBでも使って自分でDBMS実装すれば?
0775名無しさん@そうだ選挙に行こう
NGNGボトルネックが性能テストで分かったところで、解決するってだけの話。
それでHQLで厳しいようならネイティブのSQLを書く。
0776名無しさん@そうだ選挙に行こう
NGNGうんまあちょっと煽りすぎだけど
そのほうが盛り上がるからね(w
0777名無しさん@そうだ選挙に行こう
NGNGどうやってユーザーにOracleを勧めているのかが目に浮かぶよ。
0778名無しさん@そうだ選挙に行こう
NGNG自分のバカをさらして盛り上げるとは、いい奴だ。
0779名無しさん@そうだ選挙に行こう
NGNG決まってるじゃないか。俺らは余分なサポートはしたくない。労力は
払いたくない。Oracleならゴールドやプラチナ保持者程度は
ゴロゴロしてる。
だから、金払えオラ。
0780名無しさん@そうだ選挙に行こう
NGNG0781名無しさん@そうだ選挙に行こう
NGNGうん感謝してよ。
バカをよってたかって叩きたがるバカが多いからね、このスレは。
0782名無しさん@そうだ選挙に行こう
NGNG読み方 : ディーエーオー
フルスペル : Data Access Object
00.2.11更新
Microsoft Accessによって作成されたデータベースを操作するための
プログラミングインターフェース。
データベースの作成を含め、あらゆる操作をプログラムから利用することが可能。
同社のプログラミングツール「Visual Studio」シリーズに標準で添付されており、
Visual BasicやVisual C++などで利用することができる。
0783名無しさん@そうだ選挙に行こう
NGNGただねぇ、あまりにもバカだから面白くないんだよねぇ。
0784名無しさん@そうだ選挙に行こう
NGNG今は自動に任せられる部分が増えて楽になったよな。
0785名無しさん@そうだ選挙に行こう
NGNGOracleでゴリ押しできるならいいんじゃない?
0786名無しさん@そうだ選挙に行こう
NGNG古いよねえ2000以降更新が止まってるんだもの。
でも、MDB使う分には今でも便利なときはありますよ。
0787名無しさん@そうだ選挙に行こう
NGNG0788名無しさん@そうだ選挙に行こう
NGNGmysqlとかsybaseとかMSSQLとかはないんですか?
0789名無しさん@そうだ選挙に行こう
NGNGいやそのツマランはなしに必死になって食らいついてくるアフォが
多いからこんだけ伸びるのよスレが。
0790名無しさん@そうだ選挙に行こう
NGNGADOで。
そしてスレ違い。
0791名無しさん@そうだ選挙に行こう
NGNGはやくお引取り願いたい。
0792名無しさん@そうだ選挙に行こう
NGNG俺今挙がってるすべてのDBで仕事した事ある。
一番好きなのはPostgreSQLかな。
Oracleは遅いし、メンテナンス費かかるから嫌い。
0793名無しさん@そうだ選挙に行こう
NGNGOracleはチューニングしないと遅い。ちゃんとチューニングしなさい。
0794名無しさん@そうだ選挙に行こう
NGNGんなことは分かりきってるので>>747で既出ですがね。
0795名無しさん@そうだ選挙に行こう
NGNG>>764
0796名無しさん@そうだ選挙に行こう
NGNG0797名無しさん@そうだ選挙に行こう
NGNG要するに、あなたにはOracleのありがたみが分からない
それだけのことです
まあ、Oracleの全てをマンセーする訳じゃありませんがね
0798名無しさん@そうだ選挙に行こう
NGNG0799名無しさん@そうだ選挙に行こう
NGNG0800名無しさん@そうだ選挙に行こう
NGNG大人しくDB板へいってくれ。頼むから。
0801名無しさん@そうだ選挙に行こう
NGNG中途半端にDBに対する自信があるから、Javaの知識が浅くても
意見を強引に押し付ける。
まあ、良く見られる光景です。
0802名無しさん@そうだ選挙に行こう
NGNG「DBに関してJavaエンジニアの意見を全く聞かない」
ちょっと気になるとこを指摘されると、顔真っ赤にして反論してたな〜
0803名無しさん@そうだ選挙に行こう
NGNG0804名無しさん@そうだ選挙に行こう
NGNG0805名無しさん@そうだ選挙に行こう
NGNGJ2EE設計を行う上でエンティティのMap実装なんか、ありえない。
そんなこと、ある程度の経験積んでる開発者なら常識とも言えないほど当たり前のことだろうが。
そもそもエンティティをMapで表現することに一体何の利点がある?
柔軟性?そんな見せ掛けだけの薄っぺらな柔軟性で一体どんなシステム作ってんだよ。
型安全も拡張性も多態性も、Javaの利点をことごとく捨て去ってまで目先のお手軽さを
優先するような奴が、システム設計なんかすんな。周りが迷惑するだけだ。
OO自体理解してないみたいだから、それこそ時間の無駄かもしれんが、
うちの新人がここ読んで変な気起こされても困るんで、一応言っとく。
0806名無しさん@そうだ選挙に行こう
NGNGだから、POJOだの、Mapだの、そのレベルのどうしようもない話しかでてこない。
0807名無しさん@そうだ選挙に行こう
NGNGそれでも納得していただけないのでMap厨なのです。
0808名無しさん@そうだ選挙に行こう
NGNG飽きないんですけどね。
> J2EE設計を行う上でエンティティのMap実装なんか、ありえない
こういうのをstubbornという訳です。いやどうぞあなたの会社の
新人を教育する気は私にはありませんし、勝手になさってください。
コードの再利用性や疎結合を高めるために、OOというよりは
デザパタを駆使して作り上げた典型的なモンスターがJ2EEですが
EJBを選択せずにこっちを選ぶ人というのは、J2EEが場合によっては
無駄にデカ過ぎることには気づいている訳です。
なんであのJ2EEのPetShopデモはあんな下らないアプリなのに
あんなにデカいのか、と。
あのbjarne stroustrupのネタインタビューを思い出すところですね。
コボラの給料がアフォみたいに安くなったから、無駄に複雑な
言語C++を俺は作ったと。
0809名無しさん@そうだ選挙に行こう
NGNG0810805
NGNG必要なはずの複雑さすら取っ払っちゃ元も子もないだろうが。
だいたいな、Mapでやるにしたって型安全ぐらい簡単に実装できるだろうに、
なんでそれすらやってない?
その程度の知識で、どっからその自信が沸いてくんだよ。
0811名無しさん@そうだ選挙に行こう
NGNGttp://itpro.nikkeibp.co.jp/free/JAV/NEWS/20040510/1/
あいかわらず話題それて自分の世界に入っていくし。
0812名無しさん@そうだ選挙に行こう
NGNG自信は自分の内側から沸いてくるものです。
ボウフラのように。
0813名無しさん@そうだ選挙に行こう
NGNG>あのJ2EEのPetShopデモ
>あのbjarne stroustrupのネタインタビュー
たった2回の「あの」ではあるが
たぶん知識量そのものに絶対の自信を持っているのだろうと推察される
0814名無しさん@そうだ選挙に行こう
NGNG0815名無しさん@そうだ選挙に行こう
NGNGははは、あなたはコンテンポラリという表層を漂ってるだけの
ボウフラとして一生生きてください。
古きを温めることを知らない能無しの技術者はね。
0816名無しさん@そうだ選挙に行こう
NGNGこぼらーよりは全然寿命長いだろうね。
0817名無しさん@そうだ選挙に行こう
NGNGORマッピングが複雑なだけで使えないというアホへの例え話としては、最適かもしれない。
0818名無しさん@そうだ選挙に行こう
NGNGお前の主張している古きは別に温めるレベルのものではないよ。
0819名無しさん@そうだ選挙に行こう
NGNGいやまさか、リアルでこんな奴なら俺でも敬遠しますよ(w
ただ、実際のビジネスの現場では、なんだかよく分からないが
自信満々の奴が勝つ、というケースは意外と多いですね。
日本人は「断言してくれる人」を必要としてるのかも知れません。
まあ、そいつがちゃんとケツを持てるかどうかは
別問題だったりしますが。
0820デフォルトの名無しさん
NGNGコボラーよりウザイ事に。
0821デフォルトの名無しさん
NGNG温めなくていい古きを温めて、新しきを知らないのは、害だけど。
0822デフォルトの名無しさん
NGNGなるほど、その程度に読んだのですね。
あれはC++へのエレガントな皮肉にもなってますよ。
0823805
NGNGだからここで議論されてるようなORMapperやらDIコンテナが注目されてるんだろうが。
で、必要最低限の複雑さでどうにか切り盛りできないかって、
その辺を模索していく中で、EJB3.0ってのが見えてきたわけだろ。
お前の場合は何なんだよ。アクセサすらないMapで一体何をどうしたいんだ?
たとえリードオンリーのデータだろうが、それをMapで表現するってことに
どんな問題があるのか分からないようなら、もう一度入門書からやり直して来い。
0824デフォルトの名無しさん
NGNG書かない限りは問題なく本番でもいける。
まあ、経験的に社内の基幹システムがほとんどだけどね。
0825デフォルトの名無しさん
NGNGC++は突貫で作った感が否めないし、EJB2.0は確かに重すぎるが。
0826デフォルトの名無しさん
NGNG> いまどきわざわざEJB選択するなんてアフォがどこにいるんだ。
そういう面白いことは、別の場所でケンカ売ってくるといいと
思いますが(w
私のようにたくさんのレスをもらえるかもしれませんよ。
0827デフォルトの名無しさん
NGNGローン抱えちゃってるから、そんな余裕ないんだってば。
0828デフォルトの名無しさん
NGNG突貫でというか、Cとの互換性を維持しつつ仕様を追加していった
結果があのKichen sinkだと思いますね。
個別的な仕様には文句のつけようのない、筋の通った理由がある。
でも、総論的には……
0829デフォルトの名無しさん
NGNG言いたい事は非常にわかるし、その通りなんだが。
Map厨の頭には届かないと思うよ。とにかく自分ワールド炸裂だから。
0830デフォルトの名無しさん
NGNG間違ってない意見なので、「そうだよねぇ」となるだけ。
0831デフォルトの名無しさん
NGNGDIConのおかげで必要ないよ。
J2EE Development without EJB 読んだ?
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNGちょっとワラタw
0834デフォルトの名無しさん
NGNG> J2EE Development without EJB 読んだ?
いいえ。
DIConって、例えばSeasarとかで提供されてる奴ですか。
ライトウェイトなコンテナということで、結構興味は持っていたのですが、
今どきどれぐらい使われてるんでしょう。
0835デフォルトの名無しさん
NGNGその程度の知識で>>826を言い切る所にお前の問題がある事に気付け。
とりあえず、Springを使ってるプロジェクトはいくつか知ってる。
0836デフォルトの名無しさん
NGNGああ、SpringもDIConなのですね。なるほど。
0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNG別のところでは言ってるけど。
0839デフォルトの名無しさん
NGNGEJBを利用する機会は昨今非常に減ってるよ。たまに使ってもMDBかSLSBくらい。
0840デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNGむしろSpringがDICon。なんでS2ではなくSeasarがでてくるか分からん。
0842805
NGNGHibernateで吸収できない複雑な問い合わせ(帳票系とか)はDbUtilsの
カスタム実装とSpringのDaoSupport組み合わせて使ってる。
Hibernate使ったDAO実装はテスト書く必要ないから楽。ほぼ自動生成+α。
もちろんそれを使うService層でのテストは必要なんだが。
0843デフォルトの名無しさん
NGNGここではそういう話が非常に参考になると思うが・・・
Map厨には伝わらないよ。特殊なケースとか言いそう。
0844デフォルトの名無しさん
NGNGあ、しつれい。S2のつもりでした。
>>842
「DbUtilsのカスタム実装」というのは、Handler層のカスタム実装を
行っているという意味ですか。
0845デフォルトの名無しさん
NGNG>>843
こういう人たちは、まじめに回答してくれている人たちの
行為を結局はバカにしているのと同じですな。
0846デフォルトの名無しさん
NGNGHandler層って何?
0847デフォルトの名無しさん
NGNGまあ、謙虚に学んでけよ。そのうち反応も和らいでくるぞ。
0848デフォルトの名無しさん
NGNGあ、ResultSetHandlerをカスタムでインプリしているのかという意味ですね。
0849デフォルトの名無しさん
NGNGいやまあ煽ってるからこんだけレスが返ってくるという
事情はあるんですがね(w
0850デフォルトの名無しさん
NGNG純粋にDbUtilsを拡張してるだけじゃないの、Handlerに改良の余地あるっけ?
0851デフォルトの名無しさん
NGNG実の無いレスでスレが消費されても意味が無いよ。
実際HibernateやCayenneとかの話に全然深く入っていかない。
0852805
NGNGそういうことになるのかな。
DbUtils2.0のBeanProcessorをいじって独自のマッピングルールを追加した上で、
SpringのMappingSqlQueryの継承クラスに使わせてる。
開発者にSQLとModelBean用意させれば勝手に結果セットがそのModelBeanに
詰め込まれるってとこです。
Springの作者的にはあまりやって欲しくないらしいけど、マッピングルールが固まってるなら
別にいいんじゃないかと思ってる。
0853デフォルトの名無しさん
NGNGなるほど。
って、よくみると>>805さんはあれか。
私は同じMap厨なのですが、えらい口調の変わり方なので
最初わからなかったですよ(w
0854デフォルトの名無しさん
NGNGMappingSqlQuery知らんかった。こんなのもあるのね。
0855デフォルトの名無しさん
NGNGなんだか嫌らしい書き方する人ですね。
0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNG日本語が読みにくいからしょうがない。
0859デフォルトの名無しさん
NGNGんで、EJB3.0では、否が応でもHibernate的な設計になっていくわけだが。
0860デフォルトの名無しさん
NGNG>>208
0861デフォルトの名無しさん
NGNGわめき散らさんで。そんなヒマあったら Map でもいじくってて
下さいよ。こっちもアータの御高説聞く気もヒマもないから。
...あ、ひょっとしてスレタイ読めないのかな。
0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNG0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNG同意
0869デフォルトの名無しさん
NGNGストレージングの形式なんて、それこそ要件次第だとおもうんだけど、
なんでもめるの?決定くつがえす権限があることなんてナイデショあんたら。
0870デフォルトの名無しさん
NGNGなんか話が食い違ってない?
エンティティクラスの実装方法の話じゃなくて、永続化形式の話でしょこれ。
型制約を利用してプログラムを静的に安全にするか、Mapみたいななんでもアリ
にしてそのかわりあとでひどい目にあいそうな実装にしちゃうかなんて話も、
実は単なる選択でしかないと思うが、それは別の話じゃないのけ。
0871デフォルトの名無しさん
NGNGORマッピングなんか必要ない。
アクセッサだけのクラスなんかムダ。
ムダなもん自動生成するORマッピングなんか、もっとムダ。
すべてMapで解決できるだろ。
品質の低いコードも、ちゃんとテストするから大丈夫。
という持論の人。
0872デフォルトの名無しさん
NGNGウヒョ。
巨大なデータが入ったRDBのインスタンスがすでにあるときとか、
どうすんですか、それ。
0873デフォルトの名無しさん
NGNG> それは別の話じゃないのけ
その、別の話をするスレなんだが。
マッピングスレだし。
0874デフォルトの名無しさん
NGNGMapで大丈夫。
らしい。
0875869=870=871
NGNGスレ読まなくてスマソ。
0876871
NGNG0877デフォルトの名無しさん
NGNGO/R Mappingの利点とするのは違和感があるな。
たとえばEnterprise Object Frameworkはデータ取得する時にObject型で返すのが
普通なんで、かならずキャストが入るし(型保証は弱いわな)、Enterprise Objectは
内部表現としてマップ使ってんだぜ。
でもJava プログラムとDBとの関連づけがあっさりできるとか(マップを意識する必要ないし)、
キャッシングとかリレーション設定の簡便性とか、DBに対する透過性とか、複数DBを意識する
ことなく統合できたりとか、そういう利点があってこそのO/R Mappingだろ。しかもそれらの
利点を、簡単に利用できるところこそがウレシイわけだろ。
マップで十分って方も、O/R Mappingは型安全性が、ってのも、なんか論点ずれてないか?
まあここは2ちゃんではあるわけだが...
0878869=870=872
NGNGゴメン間違えた。
>>877
>まあここは2ちゃんではあるわけだが...
そういう風に納得しました、ワタシ。
0879デフォルトの名無しさん
NGNGよく読んでもらうとわかるが、ORMappingは型安全性が・・・という議論じゃない。
型安全性なんか無意味だ、アクセッサだけのクラスなんか無意味だ、マップで十分だ、という意見に対する反論。
ORマピングに関しては>>317みたいな意見もすでに出てるわけで。
ORMappingは無意味だ、というのも入り混じって、変なことになってる。
0880デフォルトの名無しさん
NGNGそーそー。型安全性なんて、O/R Mapping の数ある利点のひとつって
だけなのにね。
Map に何でも突っ込んだら型安全性 *すら* (簡単には) 保証できねえじゃん!!
って話なのに、ネチネチ粘着しおってからに。
そういう部分にくだくだ神経使いたくないからこそ便利なツールとか
使うわけなのに、かの人は典型的な「何でも全部自分でやらないと気が
済まない」タイプの人なんでしょう、恐らく。
ならクラスライブラリも使わずに全部自作すりゃいいのにね!!
若しくは cat > Foo.class でダイレクトに中間コード書け。
0881デフォルトの名無しさん
NGNG0882805
NGNG>>872
その通り。俺も型安全がORMの利点であるとは一言も言ってない。
エンティティのMap表現なんて、OO(というよりむしろJava)の利点を捨てる上に
必要なはずの複雑さ(なんかこういう言い方も違和感があるが)まで切り捨てて
やるようなことじゃないって言ってるだけ。
0884デフォルトの名無しさん
NGNG彼はそれでも負けないからね。強靭な意志を持ってるよ。
0885デフォルトの名無しさん
NGNG前スレなど消費するのに1年以上かかったのに(w
0886デフォルトの名無しさん
NGNGということにしておきたい。
0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG0890デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNG0894デフォルトの名無しさん
NGNG0895デフォルトの名無しさん
NGNG0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNG0898デフォルトの名無しさん
NGNG0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNG09031
NGNG有益な情報がてんこ盛りです。
>>47氏>>598氏のドキュメントへのリンクも取り込ませてもらいますた。
今夜中に埋まるでしょうか?
それとも、あと100スレ近くが消費されるのは、今から数ヶ月後でしょうか(w
とりあえず次スレでは、網走番外地としてperlやRuby用のO/R-mappingなども
参考程度に入れてみます。
んじゃ、漏れは帰るね〜。みんな乙。ノシ
0904デフォルトの名無しさん
NGNGMapで十分、って主張してみれば、埋まるよ。
0905デフォルトの名無しさん
NGNGA:カーナビって便利だよねえ
B:Mapで十分
0906デフォルトの名無しさん
NGNG不許可
0907デフォルトの名無しさん
NGNGB: Mop で十分
0908デフォルトの名無しさん
NGNGさらに不許可
0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNG0911デフォルトの名無しさん
NGNG「NHibernate」
ttp://nhibernate.sourceforge.net/
0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNGORM.NETなんていう商用製品をはじめ、.NET用のORマッピング製品がいくつか出てる。
0914デフォルトの名無しさん
NGNG存在しないのと同じ感じがする。Delphiといい・・・。
探せば必ずあるけど、非MSのものは、存在感が相対的にとことん薄い。
0915デフォルトの名無しさん
NGNGC#の次期次期版でそれに近いことをやろうとしてる。
Programming data in C# 3.0
http://channel9.msdn.com/ShowPost.aspx?PostID=10276
Unifying Tables, Objects and Documents.
http://research.microsoft.com/users/schulte/Papers/UnifyingTablesObjectsAndDocuments(DPCOOL2003).pdf
ただJavaでこれだけやられていて競争もおきてるところに
そんだけ後発なんだから相当すごくないとまたこけ。。
0916デフォルトの名無しさん
NGNGいや、MSとしては、Javaの方の実装や仕様が安定したところで真似したらいいだけだから。
0917デフォルトの名無しさん
NGNGSun(Java) = 日本のIT業界や産業界が創り出す最新(?)技術
MS(.NET) = それをパクってウリナラ一番宣言する韓国
って感じがしてならないのは気のせい?
0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNGそれにしても、MSの特許問題。
控訴して高裁で争ってる間に、シェア奪ってしまったモン勝ち、っていう魂胆がミエミエ。
0920デフォルトの名無しさん
NGNG訴訟に勝というというより、ライバル会社つぶすのを目的とした行動しかとらんしな。
0921デフォルトの名無しさん
NGNG今までのWindows環境一辺倒から、Java用SDKへのシフトが始まってるようだね。
JTAPI対応とかが増えてきた。
んで、漏れが今度参加する案件では、企業向けIP電話導入に際したアプリ開発時に、
JavaとHibernateで行くような雰囲気。
0922デフォルトの名無しさん
NGNGつうか、ソフトウェアの世界では日本パクリまくりじゃねぇ?
OS、DB、言語、フレームワーク。。
せいぜいruby程度か。。
0923デフォルトの名無しさん
NGNG英語をパクってるね
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNG> ソフトウェアの世界では日本パクリまくりじゃねぇ?
なにを?
ちゃんと新しいアイデアで、相手の特許に触れないように行儀よくやってると思うが。
0926デフォルトの名無しさん
NGNG昔はIのメインフレームを各社がパクリまくりで
事件になっちまったわけだが
0927デフォルトの名無しさん
NGNG結局、昔話?
0928デフォルトの名無しさん
NGNGつか、人の仕事を礎にしていかないと業界に進歩や未来がない。
オープンソースが何のためにあると思ってるんだ。
0929デフォルトの名無しさん
NGNG答えのない問いではあるが。
0930デフォルトの名無しさん
NGNG裏をかえせば、日本のソフトウェアは世界で必要とされていませんから。
0931デフォルトの名無しさん
NGNG0932デフォルトの名無しさん
NGNG大江戸ファイトがギリギリ届いてるかな。
0933デフォルトの名無しさん
NGNGMSやIBMが幅を利かせている以上、しかたのないこと。
アメリカ以外で、輸入超過してない国はあるのか?
> 裏をかえせば、日本のソフトウェアは世界で必要とされていませんから。
分野による。
0934デフォルトの名無しさん
NGNGttp://www.atmarkit.co.jp/fjava/rensai3/ormap03/ormap03.html
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNG今さらだけど、あんた神
0941デフォルトの名無しさん
NGNG0942デフォルトの名無しさん
NGNG0943デフォルトの名無しさん
NGNG盛り上がらないってことは休めてるってことかもしれないから、
だとしたら問題なし(・∀・)
0944デフォルトの名無しさん
NGNG実際はMap厨がきてないからというだけなんだけどね。
0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNGワラタ
これからMap厨および>>100はMappyとよぼう
0947デフォルトの名無しさん
NGNGじゃO/Rマッピング派はニャームコな
0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG0950デフォルトの名無しさん
NGNGリザ
に涙。
0951デフォルトの名無しさん
NGNGS2DAOに備えて。
ttp://garbagetown.zive.net/eewiki/Viewpage.do?pid=@53324A444243
…といってもS2使わないと無意味な悪寒。
0952デフォルトの名無しさん
NGNG0953デフォルトの名無しさん
NGNGいい感じ
0954デフォルトの名無しさん
NGNG新バージョンでたみたい。
http://homepage3.nifty.com/seasar/s2dao.html
0955デフォルトの名無しさん
NGNGポリモルフィズムの恩恵は受けられないの?
0956デフォルトの名無しさん
NGNG知るか
0957デフォルトの名無しさん
NGNGCayenne の 1.1 では恩恵受けられるらしい。が、自分ではまだ試してない。
0958デフォルトの名無しさん
NGNGJakarta CommonsのDbUtil, トルク、Poolなどつこぅーてるか?
DbUnitなんてしらんかったーよ。
ServletのテストすらろくにしておらずやっとCactus, MockObjectsなんて
もんを知ったもんだ。
0959デフォルトの名無しさん
NGNG既に時代遅れだよ、あんた
0960デフォルトの名無しさん
NGNGDBMagazineですら、DbUnit一年前にとりあげてたのに。
0961デフォルトの名無しさん
NGNG> DbUnit、DbUtil, トルク、Pool、Cactus, MockObjects
使ってる使ってないは別にして、古い話題を持ち出すなよ。
それか最近 Java 始めた人?
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNGしらねーじゃねーかw
0967デフォルトの名無しさん
NGNGファミコンのマッピー、マッピーランドをやったことがある。
マッピーキッズとかもあったけどやったことがない。
0968デフォルトの名無しさん
NGNGたった一年で古いものなのか。
職場にいるプログラマでは知らない香具師がほとんどなのに。
0969デフォルトの名無しさん
NGNGどうでもいいなら俺がPrevious Threadを参考にしてそのまま立てる
0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNG0972デフォルトの名無しさん
NGNGいやだから。
>>958 が最近知ったとか書いてて、おまいらこんなスゲーもん
知ってるかみたいな書きかたするからだよ。よほど感動したんか知らんけど。
0973デフォルトの名無しさん
NGNGいやなのか?
0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNG職場にいる香具師が知らないだから書いてみたんだがのう。
早くから知っていればテストであんなにつらそうな顔をすることもなかったんだろうなあと思ってね。
0976デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1090653286/
0977デフォルトの名無しさん
NGNG古い、というより、例えばTorqueの場合だと、他にいいものが出てきたので、いまさら使いどころがない。
0978デフォルトの名無しさん
NGNGtorque-genはまだ使えるよ。
DBから吸い取ったテーブル名/カラム名から
ソースやファイルを自動生成する時に。
0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNG同情なんて、真っ平ごめんでぇい。
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG作者なのかわからんが、この人のこと?
ttp://www.apache.org/foundation/martin.html
0983デフォルトの名無しさん
NGNGやはり、オープンソースで共同開発とはいえ、個人の能力には強く依存するんだな。
0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNGカイエン > ハイバネート > トーキー
なのか?
0986デフォルトの名無しさん
NGNGだから、去年の時点ではつかえたんだけど、他が伸びてきて相対的に使えなくなってる。
とっかかりでは
カイエン > ハイバーネート
だけど、実際に使えるランキングは
ハイバーネート >> カイエン
となりそう。
カイエンはリファレンス見る限り、窮屈に感じた。
# ネタにマジレスカコワルイけど、トルクね。
0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNGそれは、マジレスにネタレス
0989デフォルトの名無しさん
NGNGハイバネ > キャイーン > トーキー
0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNGそれはメシにマジオカズ
0992デフォルトの名無しさん
NGNGっていうか、夏休み中の子どもがみたら、トーキーだとマジで思うじゃないか。
0993デフォルトの名無しさん
NGNGハイパナットウの構築方法はここでみつけた。
ttp://www4.plala.or.jp/hiro_k/Report/Present/p167_top.htm
まだ、使用方法とかがないから、使えんが。
発展途上のプロダクトなので、今後に期待。
0994デフォルトの名無しさん
NGNGこれはいいドキュメントだな。GJ!
0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG強烈だな。これがハイパナットウか。
0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。