Java⇔RDBのMapping-Frameworkを語るThre Vol.3

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2005/12/05(月) 22:50:13
>>950
Super Thanks!
953デフォルトの名無しさん:2005/12/06(火) 13:18:19
>>951
DBのnull値はObjectの参照値nullになった気がするけど記憶に自信ないや。
ちょっと試してみてよ。(今ソースが手元にないのでゴメン)

余談だが、一ひねり必要なのは、いわゆる名称テーブルの行セットが
削除されてた時の関連Objectの対応かな。おれはSQLを

select
#employeeId# AS employeeId,
NVL(EMP.ENAME,'') AS employeeName
FROM DUAL
LEFT OUTER JOIN EMP ON EMP.EMPNO = #employeeId#

とやってしのいでいるけど、他のiBATIS遣いの方々はどうしてるの?

( OracleDialect丸出し失礼 )
954デフォルトの名無しさん:2005/12/06(火) 16:13:54
>>951
参照型であればnullになったはず。
問題はプリミティブ型の場合で、何も対処しないと例外になったはず。
なので、<result>にnullValue="false"(booleanの場合)を書きました。
955デフォルトの名無しさん:2005/12/12(月) 23:33:41
Hibernate使い始めたんですが、
テーブルのカラムにdate[](配列)が定義されてんですけど
マッピング定義ファイルの書き方がわからんのです。
どなたかわかります?それとも無理なんでしょうか?

<property name="regularDate" type="java.util.Date[]">
<column name="regular_date"/>
</property>

956デフォルトの名無しさん:2005/12/13(火) 12:46:32
JDBCで扱えるならUserTypeでどーにかならんか?
957デフォルトの名無しさん:2005/12/13(火) 23:05:09
Hibernate 3.1 リリース記念。
958デフォルトの名無しさん:2005/12/14(水) 21:08:18
Mapping-Framework使いの皆さんに聞きたいんですが、
今回、Java⇔Oracleで、基幹システム(見積、受注、発注、出荷、在庫など)を
組むことになったのですが、
こういうのって意外と顧客独自な複雑な仕様があるので、テーブルもすごい何十個とかあります。
全てのテーブルのMappinngクラスを作ったりするもんなんですか?
複数テーブルとリレーション組んだりする時もその都度Mappinngクラス作るんですか?

なんか、結局SQL文コードに埋め込む形になっちゃいそうなんですが・・・
実際どうなんでしょうか?




959デフォルトの名無しさん:2005/12/14(水) 21:40:04
>>958
マッピングクラスなんか自動で作ってくれるツールがあるわけだから、ケチらず全部作れば?
960デフォルトの名無しさん:2005/12/14(水) 21:43:45
あと、SQLをコードに埋め込むかどうかは、マッピングクラスを全部作るかどうかとは関係ない話。
ORマッピング使ったからといって、全部SQL使わずにやるわけじゃないし。
961デフォルトの名無しさん:2005/12/14(水) 23:19:32
Oracle Toplinkはどうした。
962デフォルトの名無しさん:2005/12/14(水) 23:54:48
>>961
EJB3のRI
963958:2005/12/15(木) 09:27:28
レスありがとうございます。

>>959-960
本当にマッピングが、仕様の変更に迅速に対応できるのか、
マッピングとSQLの混在で、中途半端にならないか
という事が不安です。
逆に、こういう時はマッピングで、この時は、SQLとかいう
推奨の取り決めなどあるのでしょうか?

>>961-962
DB2やpostgreSqlも視野に入れてるので今回は使わない予定です。



964デフォルトの名無しさん:2005/12/15(木) 09:48:56
>>963

既存のDBを使わなくてはならい。そのDBがまんまOOにするには設計的に向いてない。
慣れないORMより目に見えるSQL。そんな君ならiBATISはどうだ?

PreparedStatementより遥かに楽だぞ。

http://ibatis.apache.org/
965964:2005/12/15(木) 09:56:21
追伸:知ってるかもしれんがTopLinkの一部はEJB3のRIの土台になる、
つまりOracleDB以外でもOKなオプソになる。

GlassFishでぐぐってみて。
966デフォルトの名無しさん:2005/12/15(木) 12:41:24
>>963
> 逆に、こういう時はマッピングで、この時は、SQLとかいう
> 推奨の取り決めなどあるのでしょうか?

1件単位の処理はマッピング
複数レコード一括処理はSQL

抽出はxQL
967958:2005/12/15(木) 14:10:25
>>964
iBATISいいですね、SQL部分とロジックを分けれるので、管理も楽そうです。

>>965
TopLinkとGlassFishは、調査中です。難しそうですね・・・

>>966
>複数レコードの一括処理
ってのは、いわゆるバッチ系でしょうか?
968デフォルトの名無しさん:2005/12/15(木) 14:26:30
バッチ系じゃなくても、普通にあると思うけど。
969デフォルトの名無しさん:2005/12/15(木) 15:18:38
>>968
たとえば、ある10件のデータを持ったテーブルの内容を画面に表示したいってのは
複数レコードの一括処理に入りますか?
970デフォルトの名無しさん:2005/12/15(木) 16:03:45
>>969
入らない。
けど、select書く。
971958:2005/12/15(木) 16:15:37
>>970
一応、Hibernate使ってるんですが、>>969の場合
selectは、書く必要がないと思うんですが・・・
972デフォルトの名無しさん:2005/12/15(木) 16:16:04
>>967

iBATISはSpringと組み合わせると、なお楽チンにソース書ける。
Spring提供の 『 iBATIS用お助けAbstractClass 』 を継承する形。
さすればカッタルイお決まりソース部分は親クラスがやってくれる。

iBATISのライバルに位置するものとしては、
S2DAO、SpringJDBCが存在する。
973デフォルトの名無しさん:2005/12/15(木) 18:05:34
そろそろ次スレ準備ヨロ
974デフォルトの名無しさん:2005/12/15(木) 21:32:28
このスレのみんなは皆DbUnit使ってテストしてるの?
DbUnitはO-Rマッピングと世界が違って
どうも何か違和感を感じるんだけど
975デフォルトの名無しさん:2005/12/15(木) 22:18:51
>>971
構文上selectを省略できるという意味?
976デフォルトの名無しさん:2005/12/15(木) 23:42:46
>>975
SQLのSELECT文の事です
977デフォルトの名無しさん:2005/12/16(金) 00:27:29
SQLは集計を含んだ副問い合わせのときしかかかなかったな。
あとはHQLだった。
978デフォルトの名無しさん:2005/12/16(金) 00:29:56
クライテリアは、条件の設定が面倒だったので、使わなかった。
結合の制御もできないしね。
「select」はほとんど省略したけど、HQLを使った。

今ならprojectionが導入されたからクライテリアを使うかもしれない。
979デフォルトの名無しさん:2005/12/16(金) 06:48:19
J2EE5の説明みててアノテーションでORDER BY句が指定できるように
WHERE句も指定できるようにならないかな
980デフォルトの名無しさん:2005/12/16(金) 07:43:16
J2EE5などない。
981デフォルトの名無しさん:2005/12/16(金) 10:02:59
こういうのをモヒカン族っていうのかな
982デフォルトの名無しさん:2005/12/16(金) 10:12:42
データベースのテーブルや、フィールド名とかの命名規約ってあるのかな?
たとえば、得意先マスターだったら、今までは、
テーブル名:CUSTOMER
フィールド名:CUSTOMER_NAME
なんですけど、
マッピングを自動生成させると、
getCustomer_Nameっていうプロパティ名が生成されて気持ち悪いんですけど・・・
やっぱり、getCustomerNameであってほしいのですが、皆さんはどうしてますか?

データベースの推奨では、CUSTOMER_CODEとかアンダーバーで区切りなさいって良く聞くのですが・・・
983982:2005/12/16(金) 10:22:35
すみません誤爆でした。
customer_nameは、
getCustomerNameにしてくれました・・・
アンダーバーを使おうと思います
984デフォルトの名無しさん:2005/12/16(金) 12:13:06
次スレ:
Java⇔RDBのMapping-Frameworkを語るスレ Vol.4
ttp://pc8.2ch.net/test/read.cgi/tech/1134701684/
985デフォルトの名無しさん:2005/12/16(金) 17:56:01
>>958
オイラもそこは気になってるage
986デフォルトの名無しさん:2005/12/16(金) 18:17:26
Hibernate


ORマッピングって流行ってるの?
987デフォルトの名無しさん:2005/12/16(金) 20:58:03
ibatisのマッピングものたりない・・・。
listを出そうとするとエラーになる。
そのままtoString()で出してほしいのですが。
988デフォルトの名無しさん:2005/12/16(金) 21:03:58
モノにもよるとおもうが、オレ様の周りじゃ流行をこえて常識になってるけど
989デフォルトの名無しさん:2005/12/17(土) 11:39:11
ibatisしか使ったことねえのだが
hibernateって複合プライマリキーのテーブルの扱いがへんでねえか?
990デフォルトの名無しさん:2005/12/17(土) 13:45:38
>>981
村社会と比べたら全然モヒカン族の方が好意的だよ。
モヒカン族はテクノクラシー(技術至上主義)
村社会は社会主義社会、北朝鮮的。昔のnifty時代によく見られた
その名残としてブログや2chが出るまでは
閉鎖的な掲示板で村社会的なものがよく見られた。まさに洗脳に近い。
モヒカン族は人を洗脳しない。つっこみは入れるが意見を受け容れる
まさにアメリカ的民主主義。
991デフォルトの名無しさん:2005/12/17(土) 16:02:35
>>989
複合プライマリーキーをフィールドに持つIDクラスで管理する。
IDクラスはequals()とhashcode()をオーバーライドする必要があるが、Hibernate Toolsを使えば自動でやってくれる。

こんなかんじなんだけど、どう変なの?
992デフォルトの名無しさん:2005/12/23(金) 11:57:14
hibernateのレイジーなんたら。
Webアプリにはむかねえと思った
993デフォルトの名無しさん:2005/12/23(金) 11:59:31
>>992
なぜ?
994デフォルトの名無しさん:2005/12/23(金) 12:06:57
>>993
わかんね
カン
995デフォルトの名無しさん:2005/12/23(金) 12:13:44
>>992
つOpen Session In View
996デフォルトの名無しさん:2005/12/23(金) 12:49:54
>>992
HQLでJOINで取れば?
997デフォルトの名無しさん:2005/12/23(金) 19:26:35
野茂暗くないよ
998デフォルトの名無しさん:2005/12/24(土) 00:18:44
ばーかばーか
999デフォルトの名無しさん:2005/12/24(土) 00:19:04
ばーか
1000デフォルトの名無しさん:2005/12/24(土) 00:19:22
ばーかばーか
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。