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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2008/09/06(土) 12:31: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ぐらい

152 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 20:02:41 ]
ちょっと違うかもしれないけど、
きしだ氏のブログでも話題になってましたね。
d.hatena.ne.jp/nowokay/20081212#1229071535

自分はひがたんのところ経由で飛んだけど。
d.hatena.ne.jp/higayasuo/20081214/1229213484

ところで、

きしだ氏
> JPAが大切だと思っているのは、永続パラダイムの転換に、コーディングを変えることなく対応できるからです。
> もちろんJPA+RDBMSのシステムをJPA+非RDBMSに切り替えれるという話ではなく、
> プログラマのコードの書き方の対応の話です。

このように、オブジェクト←→永続化において、永続化層を RDB に限定せずに抽象化したのに JDO があったけど、
あれははやらずじまいになってしまったな。
出てきたときは、結構注目してたんだけど。Caster JDO とか。


153 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

154 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 10:17:49 ]
>>152
JDOなつかしいなぁ

155 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 07:29:56 ]
DAOパターンを正しく実装するならJDOのがいいはずなんだけどね。
JPA使うと「EntityManagerこそがDAO」みたいになってしまう印象が。

156 名前:デフォルトの名無しさん mailto:sage [2008/12/17(水) 19:54:19 ]
DAOパターンを正しく実装する必要性が薄いということでは?

157 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

158 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

159 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 00:39:36 ]
>>155
JPAとかはいわゆる現実解だと思うよ
厳密だけど面倒ってのがEJB2.1までのEJB+CMP+DTOになっちまうから

160 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん



161 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 00:07:44 ]
わっふるわっふる

162 名前:デフォルトの名無しさん [2008/12/19(金) 22:02:29 ]
ORというものを技術的には理解できるのだが、
それでもいまいち何に使うのかが理解できない。
テーブル構造からSQLとbeanを自動生成するとしてもだ、
テーブル単体に対してSQLを発行するわけじゃないよね?
業務の単位としての処理をどうやって自動生成するの?
手書きなの?

163 名前:デフォルトの名無しさん mailto:sage [2008/12/19(金) 22:21:34 ]
色んなテーブルのbeanをどんどんpersistしてやればいい。
flushするときにバッチアップデートするように処理される。
あとselectで取得したbeanはキャッシュされたりもするから速い。
SQL最適化以前にこの手のキャッシュで差が出る事も多い。

ただしORは1レコード1要素の制約にしばられるから、
横断的な更新ならupdate文を直接送らなきゃあかん。
そんなケースは少ないから大きな問題にはならんけど。

164 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 10:29:32 ]
DBのテーブル定義をORMで定義されるクラス群に集約することにより
SQLだと繰り返し記述することになるテーブル構造部分や結合関連の記述を省略する
SQLの「繰り返し書くことになるめんどくさい部分」を極力ソースから省くのが目的
結合関連をEntityのメソッドで追えたり、関連Entityを追加できるようになるので
編集処理などにも向いていると思う
後は楽観ロックなどが標準装備されているFWが多いので、
こういった処理を独自で実装する必要がない
テーブル定義をマッピングする性質上、
テーブル構成と業務上のモデルにあまりにも隔たりが大きく
ビューを多用したりしているようなシステムには向かない

業務単位としてのクエリは、JPAだとJPQLを使ったり、2.0で追加されるCriteriaを使う
同様のことをS2JDBCなどは、APIを使ってなるべくタイプセーフに行えるようにしている

165 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 19:13:51 ]
HQL覚えるとかいやなんだけど

166 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 19:19:50 ]
SQL方言の一つだと思えばどってことない

167 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 19:30:04 ]
SQLの方言を吸収するためにORMかますのに本末転倒すぎる

168 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 19:44:54 ]
一つの方言で全部済むならそれでいいじゃん

169 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 19:46:09 ]
Javaのオブジェクト指向とインピーダンス合わせるために使うのにHQLとか

170 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 00:33:01 ]
Hibernateの設計が悪い。



171 名前:デフォルトの名無しさん mailto:sage [2008/12/21(日) 01:35:05 ]
インピーダンスwwww

172 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

173 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 17:37:25 ]
>>167
方言吸収が目的というより、.netのLINQと一緒で
オブジェクトに対するクエリ発行が目的だと思う
SQLの検索系機能自体は強力だから、このメリットを活かしたままで
マッピングしたEntityをベースに使う為のもの
それでもSQLでないクエリを書くのが嫌なら、Criteria系を試してみるといい

174 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 20:02:30 ]
ふと気づいたが、JPAとかじゃなくてJDBC4.0でよくね?

175 名前:デフォルトの名無しさん mailto:sage [2008/12/22(月) 20:18:46 ]
JDBCはSQLExceptionの処理が面倒だからなぁ
JPAの例外は全てRuntimeExceptionになっているから
AOP等で一気に例外処理の設定がしやすい

176 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

177 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

178 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

179 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

180 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん



181 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

182 名前:デフォルトの名無しさん [2008/12/30(火) 23:40:55 ]
[ INFO ] SpringOneにて新生Tomcat Server、VMware社とのパートナー契約、ActionScriptの提供が発表される
www.infoq.com/jp/news/2008/12/springone-2008

183 名前:デフォルトの名無しさん [2008/12/30(火) 23:42:01 ]
[ AJAX ] DWR 3.0 Release Candidate 1 リリース
directwebremoting.org/blog/joe/2008/12/16/dwr_version_3_0_release_candidate_1.html

184 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

185 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

186 名前:デフォルトの名無しさん mailto:sage [2009/01/02(金) 21:40:47 ]
      l:.:.:*ゞx : : (: : `ヽ、: : :.ヽ_: : ヽ、} l
      ト- ': : :._ > ― f' ¨下. ̄.ト、 ̄` ヽ、 }
     ノー'´ ̄ / l.  ,ィ !   } ヽ._レ}-ir' i ,>
   ∠ィ 「` 7 十ァ-j、/l イ!   ヘlニj_ハ. ハ | !
    / i .i ,' ,ィt7示x jノ j'   '行h;} jノ!| ソ .l   HYBERNATE使ってる人は
     { ハノV / ト'じ_;:}     弋tタ ! !i i |  お正月だしちょっと人生考えたほうがいいかもしれないね!
    ゝ}  | 乂クソ    、    、、 ! i.| ',  !
     ,'-|   ト, 、、               ! ! l  ', !
.   人ニ!  |         - 、   / |l  ',. i
   , ``|  |ヽ、      '´     イ.|  !|  ヘ V
   ,' i  !   |.  `   、     r'  ! |  | .|  、. ヽ\
  ,'  | i|  |`丶 __ _フ ´) V  || ! .|  i   ヽ
  ,'   レ'T.  |         /  \_l| |__|  ',   /

187 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

188 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

189 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

190 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん



191 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

192 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 23:19:03 ]
ただのクソスレか

193 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

194 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

195 名前:デフォルトの名無しさん mailto:sage [2009/01/17(土) 01:51:21 ]
結構売れてんだな

196 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

197 名前:デフォルトの名無しさん [2009/01/21(水) 18:31:08 ]
Java + DB に詳しい方がいると思って質問です。

Java から Oracle に対して大量にデータ更新をする処理を何度も行うするバッチがあります。
(Spring + iBatis、Java 5、Oracle 10i)

・一度のメソッドの中で、5000件ぐらい、insert したり update する
・そういうメソッドを 30 回ぐらい呼ぶ

いまは、ふつうに for 文で対象件数分回して、そのなかで insert や update を実行しています。

こういった処理を高速化するにはどうしたらいいでしょうか?

・JDBC には addBatch() 方式があり、iBatis 経由で組み込んでちょっと実験してみたが、
 気持ち早くなった気がするものの、あまり目立った効果を感じない

質問1:
JDBC addBatch() 方式は、パフォーマンスアップとして有効か?
JDBC ドライバの実装次第というのをどこかでみたが、Oracle JDBC ドライバの場合は?

質問2:
大量データの投入、更新にストアド化は有効か?

ストアドが有効な場面は、何度かSQLを呼び、結果を Java 側に fetch してきて Java 側で編集して RDB に書き戻すような場合だと
思っていますが、単に大量データを投入するような場合でも有効でしょうか。
単純な insert / update するような ストアド を RDB にロードしておき、Java からパラメータだけを配列渡しにする、みたいな。

他にも何かいいアイデアがあれば教えてください。


198 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 18:38:54 ]
>>197
JavaでCSV(TSV)ファイルを作成してOracleにインポート

199 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 19:35:09 ]
PreparedStatementのキャッシュが効いてないとか。

200 名前:デフォルトの名無しさん mailto:sage [2009/01/21(水) 19:51:11 ]
リレーション具合にも夜から一概に言えない。
CSV読み込みで高速処理できるなら。トランザクションで一括処理すれば同程度には出来るかも。

そのへんはDBAのコンサルが詳しい。



201 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

202 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 23:52:23 ]
>>197
public void addHoge(final List a)throws DataAccessException{
/* unDivide */
getSqlMapClientTemplate().execute(new SqlMapClientCallback() {
public Object doInSqlMapClient(SqlMapExecutor executor) throws SQLException {
Iterator it = a.iterator();
executor.startBatch();
while (it.hasNext()) {
String str = (String)it.next();
executor.insert("insert_sql", str);
}
int rowsaffected = executor.executeBatch();
return new Integer(rowsaffected);
}
});
}
これ以上はストアド化する他ないかな?
DBがOracleならストアド化しとけばいいんじゃない?


203 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

204 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

205 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

206 名前:デフォルトの名無しさん [2009/01/29(木) 19:52:08 ]
ちょっと教えてもらいたいんだけど
整合性のとれていないDB(それがそもそも間違ってるんだが…)で
@ManyToOne の参照先エンティティが存在しなかった場合に
エンティティを自動的に生成するなりして例外を発生させない処理って
エンティティクラス内だけで実装可能?

207 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 01:00:03 ]
>>206
回答になっているか分かりませんが。

72.14.235.132/search?q=cache:vKo0aA19iYAJ:otn.oracle.co.jp/forum/thread.jspa%3FmessageID%3D35013224+jpa+%E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90+%E3%82%A8%E3%83%B3%E3%83%86%E3%82%A3%E3%83%86%E3%82%A3&hl=ja&ct=clnk&cd=1&gl=jp

OTNのBBSがメンテ中なのでキャッシュから。
jpa 自動生成 エンティティ でググってみた。

ってか、JPAを使わないとダメなのかな?
iBATISならSQLとJavaBeanをマッピングすればおkなのですが・・・。


208 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 03:53:45 ]
整合性の取れてるまともなDBを作ってそっちをマスターにしたら?
今までの整合性無いDBへのリレーション維持の要求にはバッチ処理とかで旧システム互換取ればよくね? リアルタイムでもいいけど。

209 名前:デフォルトの名無しさん mailto:sage [2009/01/30(金) 14:15:38 ]
>>206
そういう外部キー制約に関する整合性が取れてないDBと
JPAとの相性はすこぶる悪い
他のORM使った方がいいと思う
Hibernateの場合、一応例外を発生させないような設定オプションはあるけど
それでも、できるだけ採用しない方が無難

210 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:02:00 ]
今ウチで保守をやってるシステムだと、

・各テーブルの末尾に「削除フラグ」列があって、
 ここに 1 が入っている行はオンライン処理対象外とし、
 日次夜間バッチでDELETEする
・マスタ系のテーブルやコード・区分テーブルには
 「適用開始年月日」「適用終了年月日」列があって、
 すでに無効になったデータも履歴として管理していて、
 現在有効なデータを取得する条件として
 「開始日 <= システム日付」かつ「終了日 >= システム日付」
 を指定している

っていう処理があるのね。
で、こういう処理ってウチだけじゃなくて、他でもやってると思うんだけど、
そういった汎用的な処理を簡素化してくれる機能付きのO/Rマッパーって無いかな?

「特に指定しなければ、デフォルトで論理削除されてないデータのみを取得する」とか
「特に指定しなければ、デフォルトで現在有効なデータを取得する」とか、
O/Rマッパーが統一的に面倒見てくれると嬉しいんだけど、どうなんだろ?

それともそういうのって、O/Rマッピングを超えてるのかなぁ……



211 名前:210訂正 mailto:sage [2009/01/31(土) 20:02:47 ]
誤:それともそういうのって、O/Rマッピングを超えてるのかなぁ……
正:それともそういうのって、「O/Rマッピング」の範疇を超えてるのかなぁ……

212 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:08:47 ]
>>210
DBFluteってのがそこら辺の面倒みてくれたキガス

213 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:31:59 ]
>>210
COBOL系のシステムで見られる手法でRDBとは相性が悪いが、
底辺の現場で多く使われている。
たいていキーや関連が破綻している。


214 名前:デフォルトの名無しさん mailto:sage [2009/01/31(土) 20:33:46 ]
>>210
ウチはサマリの集計処理とか、要らないデータの削除処理がストアド(pl/pgSQL)で動いてますね。

基本はストアドで、それを1時間に1回、あるいは1ヶ月に1回バッチで呼び出す感じかな?
SpringFramework + iBATIS + PostgreSQL(pl/pgSQL)が一番保守しやすいっス。
他の処理も全部ストアド化しておけば良かったと後悔してますがね。orz


215 名前:210 mailto:sage [2009/01/31(土) 21:05:08 ]
>>212 サンクス!
ドキュメントを斜め読みした限りでは良い感触かも。
ちょっとexampledb試してくる。

>>214 サンクス!
ウチのシステムはテーブル名に2バイト文字が使われてる等々、
>>213の言うとおりの残念設計だったのでiBatisがダメだったんだけど、
今見たら日本語通るようになってたので、ちょっと調べてみるよ。

ただ、どっちかというと、バッチよりオンライン処理の実装でラクをしたかったり。
10年以上改修を繰り返した結果、特にオン側のコードでスパゲティ化が著しいもんで……

216 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 02:17:50 ]
メンテ用と本番用のフレームワークで分けて、遮蔽しとけば済む話では?

履歴系とリアルタイム系でシステム分けたい感じだが。

217 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

218 名前:デフォルトの名無しさん [2009/02/05(木) 03:09:14 ]
自分は iBatis はそこそこ経験があり、
Hibernate は、簡単なシステムで経験がある程度です(複雑なjoinが必要なかった)

今度 Spring + Hibernate + JPA のサンプルを作ることになり、
www.amazon.co.jp/dp/4839925941
の本を見ながらやりはじめました。

この本の P.87 を見ると「EntityManager に更新に相当するメソッドはない」とありますが、
JPA でレコードを更新するときは、必ず一度 select しておかないといけないのでしょうか?

DB を更新する際に、一度 select せず、いきなり update 文で一括更新したいこととかあると思いますが、
----------------------------
例:
年度の締め処理において、「契約状態フラグ = "契約済み"」 となっているレコードを「締め済みフラグ = "締め済み"」にする。

SQL の例:
update 契約情報 set 締め済みフラグ = '締め済み'
where 契約状態フラグ = '契約済み'
----------------------------


219 名前:218 mailto:sage [2009/02/05(木) 03:10:16 ]
(続き)

こういう場合は、以下の3択でしょうか(他にあれば指摘してください)
(1)対象データを全部 select してきて、for 文でエンティティに更新したい値をセットして反映させる
(2)JPQLか、
(3)ネイティブQuery

(1)だと大量データの時にパフォーマンスで問題がありそう。
(3)のネイティブQuery だと、JPA が持っているキャッシュとDBのズレが生じるというデメリットがある
 とどこかで読んだのですが、この認識はあってますか?
(2)のJPQLだと、ネイティブQuery と同じように集合演算的に扱え、かつ JPA が持っているキャッシュと同期がとれると理解しています。
 SQL を避けるために O/R マッパーを使っているのに、String で SQL モドキの言語を生成するのはイヤですが・・・

結局 データを集合的に扱いたければ、JPA や Hibernate のような O/R マッパは向かない、ということになるのかな。


220 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 03:19:44 ]
JPQL使ってもキャッシュと同期は保証されない
ただし自分でEntityManager#flush()することができる



221 名前:デフォルトの名無しさん [2009/02/05(木) 03:22:53 ]
while(1)
{         
     wakeup;
     static int day;
     int time = wakeuptime();
     while(1)
     {
          2ch;
          if(time == Daytime())
          {
              lunch;
          };
          if(time == nighttime())
          {
              supper;
          };
          if( time == sleeptime();)
          {
              break;
          }
          time++;
     }
      day++;
     sleep;
}

こんな毎日、無限ループって怖いよな;;




222 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 21:21:22 ]
>>221
なんか1日が終わらない気がするけどどうでもいいや

223 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 10:27:02 ]
EclipseLink関連のドキュメントで良い奴ありますか?
公式のExampleが1.0.2で動かないので、1.0.1で試してみたら動く、とか、
適当も良いところなんですが。。。


224 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 11:55:06 ]
EclipseLink 1.1ってなかなか出ないね

225 名前:デフォルトの名無しさん [2009/03/12(木) 16:53:18 ]
EclipseLink 1.1age

226 名前:デフォルトの名無しさん mailto:sage [2009/03/28(土) 21:54:49 ]
EclipseLink新ロゴ
www.eclipse.org/eclipselink/logocontest/

227 名前:デフォルトの名無しさん mailto:sage [2009/03/31(火) 04:40:35 ]
PreparedStatementのキャッシュをコネクションを超えてプール出来ないものかねぇ。
DB側ではセッションとかも浪費してると思うと何だかね。(俺の知識が古い?)
JDBCにPreparedStatementの構文でストアド登録できる機能みたいなのが欲しい。

まあこんな機能はチラシの裏すぎるとは思うが。

228 名前:デフォルトの名無しさん mailto:sage [2009/04/05(日) 14:54:58 ]
                 _.. -――- ._ 
               ./  ,―――‐- ._` .
             /)  ./  /  /  ``\
            ///)ィ7T.フ厂 ̄`フi ‐-_ |〉. _人人人人人人人人人人人人人人_
          /,.=゙''"/  フl/_×// |ハハl .ト、>  細かいことはいいんだよ!!  <
    /     i f ,.r='"-‐'つイ._T_i`   .r≦lハ!|`` ^^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄
   /      /   _,.-‐'~| |'弋..!ノ     i'+!l |   
     /   ,i   ,二ニ⊃l |' ' '  ,‐- ..__゙ー' .!l .|  
    /    ノ    i l゙フ..,!l .ト、  l  `,!   .ハ.!  
       ,イ「ト、  ,! ,!|.../_| |l: > .ヽ.. ィ <l   l|   
      / iトヾヽ_/ ィ"\. | | \ \ー'/ ./ ,,;:`:;'゙

229 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

230 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん



231 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

232 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

233 名前:デフォルトの名無しさん [2009/04/12(日) 09:25:13 ]
>>227
ふっ

234 名前:デフォルトの名無しさん mailto:sage [2009/04/20(月) 19:42:28 ]
hibernateの公式いつまでメンテナンスしてるんだ…
もう3日目くらいだぞ

235 名前:デフォルトの名無しさん [2009/05/18(月) 17:56:28 ]
>>101
 Z
  z
  z
 <⌒/ヽ-、___
/<_/____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄


236 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 13:22:13 ]
Hibernate について質問させて下さい。
(Hibernate バージョンは 3.2.5GA、DB は MySQL 5.0 を使用しています)
DetachedCriteria で条件分岐(case 式) を使うことはできますでしょうか?

以下のようなテーブルにおいて、

id | nameOfferer | nameOfferee
------------------------------
1 | foo | bar
2 | aho | foo
3 | hoge | baka
4 | baka | foo

「nameOfferer か nameOfferee のどちらかに
foo が含まれる箇所を抽出し、foo でない方の名前を使って昇順で
ソートされた行を抽出する」、という処理を行い、

aho
baka
bar

という結果を抽出したいのです。
HQL では以下のように記述し、動作することを確認しました。

select (case when nameOfferer=:nameUser then nameOfferee else nameOfferer end)
from FriendImpl where (nameOfferer=:nameUser or nameOfferee=:nameUser)
order by (case when nameUserOfferer=:nameUser then nameOfferee else nameOfferer end) asc
(nameUser には Query#setParameter() で "foo" をセットしています)

これと同様の処理を DetachedCriteria で書きたいのですが、case 式を使う方法が
リファレンス・ APIDOC を一通り見てもわかりませんでした。
どなたかご存知でしたら教えて頂ければ幸いです。

237 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 00:09:52 ]
教えを請うのに例で baka とか aho を出すことはないだろうよ

238 名前:236 mailto:sage [2009/06/02(火) 12:47:07 ]
>>237
そんなところをツッコまれるという発想はありませんでした…。申し訳ありません。

239 名前:あぼーん mailto:あぼーん [あぼーん]
あぼーん

240 名前:デフォルトの名無しさん [2009/06/27(土) 21:12:23 ]
>>101
  サテト
  ∧∧
 (・ω・ )
 _| ⊃/(__
/ ヽ-(___/
 ̄ ̄ ̄ ̄ ̄ ̄




241 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 22:17:28 ]
「HYBERNATE使ってみたらどうですかね?」
と発言したら誰も知らなかった現実

ていうかO/Rマッパーという言葉すら通じなかった

もうやだこの現場

242 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 23:54:51 ]
まぁ必要を感じないんだったらしょうがないよね。

実際そんなもん使わなくても開発はできる訳だし。

243 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 03:04:44 ]
オブジェクト指向にたどり着けない香具師が、オブジェクト指向のメリットを感じるのは無理。
多くはコボルをjavaでの焼き直しに過ぎない。

業務でハイバネは無いな。責任誰が取るの? 提案者がバグもサポートも遣るよね。言い出しっぺだし。

244 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 06:42:24 ]
>業務でハイバネは無いな。責任誰が取るの? 提案者がバグもサポートも遣るよね。言い出しっぺだし。

業務でapacheはないな。うんぬん

と、言ってるのと同じにしか聞こえない。

245 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 07:35:46 ]
ハイバネって言ってる時点で・・・

246 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 08:20:17 ]
アパチは鯖OSならサポート有るよ。

247 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 08:37:43 ]
ハイバーネートはJBossでサポートないか?

248 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 09:26:52 ]
アパッチぐらいならサポートあるけど、ボスは無理だろう。

249 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 09:34:32 ]
Red Hat がサポート売ってるだろ。

250 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 11:46:15 ]
ドメインモデルを組めない現場や、組むほどでもない業務ならHybernateは必要ないね。
iBatisでも使ってトランザクションスクリプトでやったほうがいい。



251 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 18:40:25 ]
ボスのサポート契約するくらいなら、商用マッパー使ったほうがwww

252 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 22:18:37 ]
商用マッパって例えば?






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

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

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