1read 100read
2012年6月プログラム435: Java⇔RDBのMapping-Frameworkを語るスレ Vol.5 (933) TOP カテ一覧 スレ一覧 2ch元 削除依頼
Java 高速GUI SWT 3 (642)
【Perl,Python,PHP】LL バトルロワイヤル 23【JS,Ruby】 (448)
おまえらUMLのモデリングツール何使ってますか?2 (859)
各プログラミング言語を日本語よりに (353)
VisualBasic6.0 対 VisualBasic .NET 2003 (458)
BASICの宿題はお前にまかせた (550)

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


1 :08/09/06 〜 最終レス :12/06/17
前スレ:
Java⇔RDBのMapping-Frameworkを語るスレ Vol.4
 ttp://pc11.2ch.net/test/read.cgi/tech/1134701684/
過去スレ:
Java⇔RDBのMapping-Frameworkを語るThre Vol.3
 ttp://pc8.2ch.net/test/read.cgi/tech/1090653286/
Java⇔RDBのMapping-Frameworkを語るスレ Vol.2
 ttp://pc5.2ch.net/test/read.cgi/tech/1086315004/
Java⇔RDBのMapping-Frameworkを語るスレ
 ttp://pc5.2ch.net/test/read.cgi/tech/1049030272/
●まずは、基礎知識と技術選択指針など
 [The Fundamentals of Mapping Objects to Relational Databases]
  (RDBに対するオブジェクトマッピングの基礎(英語))
  ttp://www.agiledata.org/essays/mappingObjects.html
 [O/R-Mappingツールの比較サイト(英語)]
  ttp://c2.com/cgi-bin/wiki?ObjectRelationalToolComparison
 [Catalog of Patterns of Enterprise Application Architecture (PoEAA)]
  ttp://www.martinfowler.com/eaaCatalog/
あとは>>2-5ぐらい

2 :
●O/R-Mapping Framework各種
 [HYBERNATE]
  ttp://www.hibernate.org/
 [Cayenne]
  ttp://cayenne.apache.org/
 [Torque]
  ttp://db.apache.org/torque/
 [iBATIS - SQL Maps]
  ttp://ibatis.apache.org/
 [Java Ultra-Lite Persistence (JULP)]
  ttp://julp.sourceforge.net/index.html
 [Jakarta Commons DbUtils](O/R-Mappingというよりは、O/R-Bridge)
  ttp://commons.apache.org/dbutils/
 [Amber - Lightweight Java R/O Mapping Framework]
  ttp://sourceforge.net/projects/amber-db
 [GlassFish / EJB3.0 ReferenceImplemention ]
  ttps://glassfish.dev.java.net/
 [S2Dao]
  ttp://s2dao.seasar.org/ja/

3 :
●その他関連情報・ツール
 [JoSQL]
  JavaオブジェクトをSQLで操作
  ttp://josql.sourceforge.net/
 
 [SQL Generator]
  Javaでお手軽かつ動的にSQLを生成する
  ttp://sourceforge.jp/projects/sql-generator/
 データベース開発をサポートするプラグイン (Eclipse用)
  ttp://itpro.nikkeibp.co.jp/article/COLUMN/20071015/284575/

4 :
>>1乙!!
ひとつ紹介させてね。
 [activeobjects]
  ttps://activeobjects.dev.java.net/

5 :
>>1 おつです
他にもまだまだあるようで
ttp://db2.jugem.cc/?eid=1421

6 :
Hibernateの、HQLを使用した、自然キーを持つテーブル(クラス)の
結合に関して質問したいんだけど、それってここでいいの?

7 :
すいませんあげてしまいました・・・ごめんなさい

8 :
新規の質問はあげるのが普通じゃね?
いいと思いますよ。

9 :
ありがとうございます。
それでは質問します。
EclipseとStruts2フレームワークを使用して、開発を行なっています。
Struts2に付属?していたHibernateを用いて、簡単なワークフローを実現する、
Webシステムを開発しようとしています。
申請テーブル
+ユーザID
+作成年月日
+申請種別
−承否認期限日
申請先テーブル
+ユーザID
+作成年月日
+申請種別
+申請先順番
−申請先ユーザID
−承否認状況
(テキストでの記述の方法がよく分からなかったため、+が主キー列、−が普通の列です。
 外部参照等は設定しておりません。)
最低限の構造に絞った物ですが、上記のような構造のDBテーブルがありまして、
このテーブルを用いて「現在自分に来ている申請の、"承否認期限日"一覧を表示する」画面を
作成しようと思っています。

10 :
HQLでなく、SQLで実現するのであれば、下記のようなSQLが必要であると考えています。
SELECT A.承否認期限日 
FROM 申請テーブル as A, 申請先テーブル as B
WHERE A.ユーザID = B.ユーザID
AND A.作成年月日 = B.作成年月日
AND A.申請種別 = B.申請種別
AND B.申請先ユーザID = '自分のユーザID'
これをStruts2のHibernateを用いて実現したく、現在、DBとマッピングされるクラスは、
申請テーブルを表すクラス、申請テーブルの主キーを表すクラス、
申請先テーブルを表すクラス、申請先テーブルの主キーを表すクラス
の4つがあります。
テーブルを表す2つのクラスには、主キーを表すクラスを格納するための
フィールドを作成済みです。
このクラス構成で、SQLをHQLに置き換えた処理を記述したいのですが、
結合するフィールドが別のクラスにあるため、どのように記述していいのか分かりません。
Hibernateを用いるのであれば、XML内に、結合に関する定義が必要であるような気がするのですが、
どのように記述すれば、別クラスにあるフィールドの結合の定義になるのかが分かりません。
XMLで、複合主キー(自然キー)を用いたクラス同士のフィールドの、
結合のための定義方法について、どなたかご教授願います。
また、どこか根本的に間違っている部分があれば、指摘を頂きたいです。
よろしくお願いします。

11 :
>>9-10
> Hibernateを用いるのであれば、XML内に、結合に関する定義が必要であるような気がするのですが、
正解。サンプルから調べるのがいいかな
ttp://www.hibernate.org/hib_docs/v3/reference/en/html/example-mappings.html#example-mappings-composite-key
関連のマッピングができればHQLでは関連名を指定するだけ。

12 :
公式ドキュメントのcomposite identifiers辺りを参照
http://www.hibernate.org/hib_docs/v3/reference/en/html_single/#components-compositeid
ただし、複合主キー使うDB構成にHibernateを使うのはあまりお勧めしない
Hibernateはあくまでも外部キーによる結合を前提とした挙動をするから
後々ハマるポイントが出てくる

13 :
ありがとうございます、参考に致します
英語は糞苦手ですが頑張って読みます
>>11
関連名をHQLで指定する!?その発送は無かったです
クリティカルなサンプルありがとうございます、
参考にします
>>12
本当は人工キーに変更したいのですが、
今更そんな事も言えず・・・というか、
むしろHibernateを使用したくないのが本音です
勉強だと思って頑張ります
ところで、現在、英語が苦手な私は
ttp://www.redhat.com/docs/manuals/jboss/jboss-eap-4.2/ja_JP/html/Hibernate_Reference_Guide/index.html
ここを参考に作業をしているのですが、
このページの信頼度はどの程度のものなのでしょうか?
公式と比べて遜色ない物でしょうか?

14 :
>>13
それ公式だから。

15 :
>>14
まじですか。
公式っぽいなぁとは思いつつ、確証持てなかったんですが・・・
ありがとうございます、自信を持って参考にします

16 :
>>5
これ使ったことあるん?
あるなら感想というか使い心地を聞きたいなあ

17 :
アンカーミスった
>>4です、すいません

18 :
activeobjectsってHIBERNATEとかに比べると簡単だったよ。
ただトランザクションの宣言方法が独特だった気が…

19 :
あれー?
S2JDBCはー?

20 :
なにそれ
使えんの?

21 :
>>20
今の流行。俺の中でw
Hybernate

S2Dao

iBatis

S2JDBC(今ここ)

22 :
その流れでS2JDBCにたどり着くっててところがおもろいが
4つの中でどれが一番覚え易かった?

23 :
いまはS2JDBCかなー
でもちゃんと規約作った方がよさげ。
自分で規約を作れないならS2Dao。
規約作れなくても楽がいいっていうならS2JDBC。
仕組み的にはiBatisが一番分かりやすいけど、
タグ覚えなきゃならないのとタグにクセがある部分があるのが
ちょっといやなところがある。
まあ、Seasar使えないならiBatisしかないけど。
Hybernateは無い。

24 :
S2JDBCやLINQみたいなものは良いんだけどさ〜。
でも、分かっている人達だけでやる時用っていう気はするんだよね。
スキルが色んな人達が集まっている環境で、最低限の品質を保とうとすると
結局DAOパターンに落ち着いてしまったり。
iBatisも3.0になって、interfaceベースでのConfigurationが出来るようになると
嬉しいかな?
そしてHibernateは無い。

25 :
Hybernateが無いのは同意
規約は無くても、作ってたら自然と規約っぽくなっちゃわない?
でも複数人でやるときは
やっぱS2Daoのほうがいらぬ心配しなくていいのか

26 :
Hybernateはないよな

27 :
たしかにそんなプロダクトはないな

28 :
無い理由は?
覚えること多すぎというのはわかる
あと、Hibernateな

29 :
開発や企画を押さえ込めるスーパーエンジニアががっちりドメインモデルを作って
仕切ってるような場合はhibernateはいいんだけど、そういうのはまずありえないから。

30 :
EclipseLinkは?

31 :
>>30
O/Rマッパの主力かと
EclipseとNetBeans、JDevの積極的なサポート
アプリケーションサーバーもGlassfishV3で標準になるし
Oracle製品も標準搭載してくるでしょ
なんだかんだいってもJPAはツールのサポートが一番優れてるから便利
標準APIは強いな

32 :
>>28
> あと、Hibernateな
>26はその意味。分かりにくいけどyは全角なんだぜ

33 :
S2JDBC、OpenJPA は、ともに JPA の実装のひとつという理解であってますか?
あと、ほかに JPA ができる実装として、(ググってキーワードだけ見つけたので実際に使ったことはないのですが)
を見つけました。
Hibernate + Hibernate Entity Manager
TopLink JPA
Hibernate Entity Manager を使えば、Hibernate を JPA チックに使えるってこと?

34 :
S2JDBCはJPAの実装じゃないよ

35 :
>>33
S2JDBCは違う。あれは見た目JPAに似ているが完全な独自。
>Hibernate Entity Manager を使えば、Hibernate を JPA チックに使えるってこと?
そういうこと。
Hibernateを採用した場合でも独自は出来るだけ使わずにJPAベースで開発して
どうしても必要なところのみHibernate依存を書くのが一番メンテ含めて効率が良い。
あとTopLink EssentialsがTopLinkをベースにJPA実装を作ったやつで
RI(参照実装)となっていた。これの後継がEclipseLinkになると思ってよい。
JPA2.0ではEclipseLinkがRIになる。

36 :
>>29
DB設計時にO/Rマッパーの機能・規約を意識しているかどうかは重要だけど
ドメインモデルを採用するかどうかは必須条件ではないよ

37 :
javax.persistenceのアノテーションでインデックス付けたいんですけど、
Hibernateの@Index見たいなのが無くて困ってます。
そう言う物?

38 :
>>37
Hibernate独自アノテーションはJPAにできないことのためにある

39 :
JavaPersistenceAPI(笑い)

40 :
JPAネットたかた(笑い)

41 :
(笑い)(笑)

42 :
>37
@Indexってなんのためにあるの?

43 :
禁書目録のためにある

44 :
禁書目録のためにある(笑)

45 :
>>38
そうだと思って@Index(name="xxxx")を一緒に付けても、
インデックスが作成される気配も無く・・・
persistence.xmlを使うと、Hibernateアノテーションは使えなくなるのかなと。
>>42
DBのいわゆるインデックスを作成する為に。
少なくともそう思ってます。

46 :
ORM側からDB生成するのはせいぜい最初だけだと思ってるけど、
定常的にORM側をメインに使ってる事例はどのくらいあるんだろ。
47 :
あぼーん
48 :
あぼーん

49 :
い……禁書目録
50 :
あぼーん
51 :
あぼーん

52 :
ところで、JPAのManyToOneのOne側のIdがnullなデータベースがあったらどうすればいいですか?

53 :
IDがNullだと・・?
54 :
あぼーん
55 :
あぼーん

56 :
>>52
で、結局面倒なのでデータベース側で結合させてむりくり処理することにした。
http://as400bks.rochester.ibm.com/html/as400/v4r5/ic2962/info/db2/rbafpmst89.htm#HDRDEJDFTV
as400って昔からデータベースが標準だったからいまでもデータが残っているのでいいんだが、
RPGのプログラムだと好き勝手に組めてidにnullなんかやりたい放題なんでそんなのどうするかはすげー困る。
あーデータベース一から作り直したいぜ。
スレ違いすまぬ
57 :
あぼーん
58 :
あぼーん
59 :
あぼーん

60 :
なんかのアニメキャラなのか?
キモ・・・
61 :
あぼーん
62 :
あぼーん
63 :
あぼーん

64 :
なんか荒らされるようなことあったっけ?
65 :
あぼーん
66 :
あぼーん
67 :
あぼーん
68 :
あぼーん
69 :
あぼーん

70 :
すみません
Hibernate勉強中なのですが、Hibernate Reference Documentationの最初から戸惑ってます
最初の単純なアプリケーションをコピーして作っているのですが、動作しません
いきなり、slf4j関係で怒られます
エラーメッセージにあらわれたURLを参考にslf4j-simple-1.5.5.jar入れたら、とりあえず、slf4j関係は怒られなくなりました
しかし、さらにjava.lang.NoSuchFieldError: nameなるエラーメッセージが現れ動作しません
デバッガで追ったところ、発生箇所はnew Configuration()なのですが、何が悪いのかよくわかりません
現在、Configurationのソースコードを読み始めていますが、なにかアドバイスあればお願いいたします
Hibernateは3.3.1です
OSはWindowsXPSP2, jdkは6update7です
よろしくおねがいいたします

71 :
>>70
事故解決しました
ありがとうございました

72 :
事故解決ってなんだ
下請けにぶつけて賠償請求でもしたのか
73 :
あぼーん
74 :
あぼーん

75 :
なんかJavaって使ってるの基地外ばっかなのか?
>>43 あたりからなんか意味不明なんだけど

76 :
意味さえわかれば基地外ではないということが理解できるはずさ
77 :
あぼーん
78 :
あぼーん
79 :
あぼーん
80 :
あぼーん
81 :
あぼーん

82 :
>>70
同じ問題で悩んでいます。
どう解決したのか教えて下さいませ。

83 :
どう解決したのか教えてくれるとうれしいな
>>82から>>70へのお願いなんだよ

84 :
Hibernateのバージョンを3.3.1から2.1.8に落としたらうまくいきました。
フォーーー!!
85 :
あぼーん
86 :
あぼーん
87 :
あぼーん
88 :
あぼーん

89 :
S2JDBC って Seasar と全く関係ないプロジェクトでも使えるんですか?
ちょっと質問が意味不明かもしれないですが…うまく言えないですが、
Seasar 系のものと一緒でなければ使えないのかどうか知りたいのですが。

90 :
名前からみてもらえればわかるとおり依存性あり
JPAのようにコンテナ非依存だったらよかったよね
S3の各種コンポーネントもSlim依存のようだし
SAStrutsとS2JDBCがDIコンテナ非依存だったら
SpringとかGuiceとかその他さまざまなところで使われた予感

91 :
何トンJンなこと言ってるんだ?

92 :
なんだS2JDBCってそうなのか。残念。

93 :
とある Java の インデックスアウトオブバウンズエクセプション
94 :
あぼーん

95 :
無能力情報処理技術者 レベル0(大半はこれに当てはまる。単なるおちこぼれ。ごくまれに例外がいる。)
低能力情報処理技術者 レベル1(多くの開発者が属する。パスポートでITの国に入国できる程度の力。)
異能力情報処理技術者 レベル2(レベル1に毛が生えた程度の力で、基本的な能力のみ有する。)
強能力情報処理技術者 レベル3(能力は今の貝発射程度。資格的には高度区分扱いされ始めるレベル。)
大能力情報処理技術者 レベル4(プロジェクトにおいて戦術的価値を見出せる程の力。)
超能力情報処理技術者 レベル5(日本のIT業界でもそれほど多くない。1人で1プロジェクトと対等に渡り合える程の力。)
絶対能力情報処理技術者レベル6(日本のITの動向に影響を与えるほどのスキルを有する者だけが到達可能。)
ttp://www.ipa.go.jp/jinzai/itss/
96 :
あぼーん
97 :
あぼーん
98 :
あぼーん

99 :
これってSeasarの人が荒らしてるの?
100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
【超高速】C/C++に代わる低級言語を開発したい 7 (969)
【node.js】サーバサイドjavascript【Rhino】 (816)
各プログラミング言語を日本語よりに (353)
バカボンのDelphi不買・販促・その他談話室その29 (961)
ニートの俺が何か開発して食いつなぐスレ (821)
俺主催囲碁プログラミングコンテスト (570)
--log9.info------------------
【DS】無限のフロンティア EXCEED【!】 (558)
【DS】女神異聞録デビルサバイバー議論2 (522)
ファンタシースターポータブル2∞最強・性能議論17 (223)
GBA版真・女神転生を旅するスレ part14 (277)
ディスガイアにはまれなかった奴おいで〜^^ (372)
【PSP】ジルオール インフィニットプラス part24 (287)
【PSP】ヒーローズファンタジア Part10 (514)
ドラクエ9の主人公の名前何にする? (874)
【DS】リーナのアトリエ part3 (802)
【ハート】プリンセスクラウン14枚目【まるかじり】 (728)
【PSP】最後の約束の物語葬式会場【手抜き】 (754)
【DS】テイルズオブハーツ攻略スレ Part23【TOH】 (571)
テイルズオブシンフォニアPSP移殖を願ってみるスレ (448)
【DS】キミの勇者 第8話 (331)
ラ・ピュセル†ラグナロック Part6 (404)
サガ3リメイクが神ゲーになってしまって危険 (207)
--log55.com------------------
はてなユーザーは驕るな
信州FM
チラシの裏inブログ板
えっけん
高円宮承子さまがお選びあそばしたgooブログ
真鍋かをりブログ見てるやつはあまちゃん
【書籍化】眞鍋かをりのここだけの話【発表】
【妄想】小島一志のイタコ誤字ブログ1【自演】