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

1デフォルトの名無しさん2014/06/25(水) 18:12:53.15ID:rgrQM46t
前スレ:
Java⇔RDBのMapping-Frameworkを語るスレ Vol.5
 http://toro.2ch.net/test/read.cgi/tech/1220671877/

過去スレ:
Java⇔RDBのMapping-Frameworkを語るスレ Vol.4
 http://pc11.2ch.net/test/read.cgi/tech/1134701684/
Java⇔RDBのMapping-Frameworkを語るThre Vol.3
 http://pc8.2ch.net/test/read.cgi/tech/1090653286/
Java⇔RDBのMapping-Frameworkを語るスレ Vol.2
 http://pc5.2ch.net/test/read.cgi/tech/1086315004/
Java⇔RDBのMapping-Frameworkを語るスレ
 http://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デフォルトの名無しさん2014/06/25(水) 18:13:40.98ID:rgrQM46t
●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デフォルトの名無しさん2014/06/25(水) 18:15:10.93ID:rgrQM46t
●その他関連情報・ツール
 [JoSQL]
  JavaオブジェクトをSQLで操作
  http://josql.sourceforge.net/

 [SQL Generator]
  Javaでお手軽かつ動的にSQLを生成する
  http://sourceforge.jp/projects/sql-generator/

 データベース開発をサポートするプラグイン (Eclipse用)
  http://itpro.nikkeibp.co.jp/article/COLUMN/20071015/284575/

 [activeobjects]
  https://activeobjects.dev.java.net/


オープンソースJava O/Rマッピングソフト一覧
http://db2.jugem.cc/?eid=1421

4デフォルトの名無しさん2014/06/25(水) 21:10:00.51ID:PDacUeaI
ActiveObjectは注目していたけど開発中止だってさ

5デフォルトの名無しさん2014/07/09(水) 21:50:19.23ID:ehIjkIMV
今はS2JDBCがメイン。Java8に対応したDomaも気になる所だけど。

6デフォルトの名無しさん2014/07/14(月) 15:43:53.14ID:YgyshveW
またseasarゾンビかよ

7デフォルトの名無しさん2014/07/14(月) 23:16:24.51ID:SSEjcuim
>>6
domaはseasarに依存してないだろ。情弱乙

8デフォルトの名無しさん2014/07/18(金) 06:55:46.44ID:ebrrZgfr
やーいグレートゾンビ〜w

9デフォルトの名無しさん2014/07/30(水) 00:43:16.09ID:HU/H1ueJ
[EBean]
http://www.avaje.org/

PlayFramework2.x (play-java)の標準のORマッパー
使い勝手は悪く無いとおもうよ
play以外の既存の環境で使うことがあるかはわからないけど。

エンティティとサービスみたいな構成じゃなく、エンティティクラス(モデル)に必要な処理を持たせるって感じのスタイル。

中身の無いJavaBeans的なフィールドしかないEntityと、実際のビジネスロジックを持ってるEntityServiceみたいな
業務系Webとかでよく見けけるアレなスタイルがメインだと、staticメソッドとか多用するの違和感ありそうだけど、
ちゃんとしたMVCに慣れてたら、こっちのが多分楽じゃないかな。
何が何でもDIしないとヤダヤダって環境だと、EBeanはマッチしないかもしれないけど。

他のORMとどう違った特徴があるかはあまりよくわかってないけど、
パブリックフィールドをプロパティのように使えたりは、こいつもできる。
あとfinderが便利ってくらいかな。

S2JDBCみたいな、検索条件のカラム名をタイプセーフにするための仕組みみたいなのはもちろんない。

ちなみに、まだjava8のバイトコードには対応できてないのか、
エンティティにrambda入ってたりするとクラス拡張時にコケたりする問題がいまんとこあるみたい。
(ちゃんと開発を追っかけてるわけじゃないので、もう直ってるのか対応中なのか放置されてるのかは知らない。)


あと使ったことないけどDBFluteとか、Domaとかもテンプレには入ってないね
http://dbflute.seasar.org/
http://doma.seasar.org/

まぁどっちもSeasarプロジェクトの配下だから(S2依存してるかには関係なく)不安要素が大きいけど。
日本のOSS、よほど運が良くないと成功する気がしないんだよな…

10デフォルトの名無しさん2014/08/17(日) 18:09:54.47ID:oEmocuYk

11デフォルトの名無しさん2014/12/25(木) 18:18:50.61ID:4NqR05Fg
>>9
Doma2はseasarプロジェクトから独立した
https://github.com/domaframework/doma

12デフォルトの名無しさん2014/12/26(金) 02:06:46.12ID:7GX3zrCH
>>9
日本語メインだとまずダメだな
日本人は叩くだけで手伝わないからな

13デフォルトの名無しさん2015/01/30(金) 16:28:14.81ID:3GlspGaN
今さらhibernate3を使ってるんだけど、相関サブクエリがちゃんと動かない・・・

select h1
from Hoge h1
where exists (
select h2
from Hoge h2
where h2.id = h1.id)

みたいに書いたとき、こんな感じのSQLが生成されてる。

select ...
from hoge hoge0_
where exists (
select ...
from hoge hoge1_
where hoge1_.id = hoge.id)

サブクエリ側のwhere条件は、hoge1_.id = hoge0_.idとなってほしいんだが???
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'hoge.id' in 'where clause'
とか言われちゃうんだが????
なにか心当たりある方いましたらお助けをー

14デフォルトの名無しさん2015/01/31(土) 12:00:49.68ID:yCUyDGLf
select h1
from Hoge h1
where exists (
select h2
from Hoge h2
where h2.id = h1.id)

↑これが何をしたいのかわからん

idってユニークじゃないの?
同じテーブル内でidが重複しているレコードを引っ張りたいなら

group by して having count > 2 とかの方がいいのでは?

それと、HibernateはORマッパーだから、もし上記SQLがレポート用や集計用のためだったら、おとなしく、SQLを文字列で書いてHibernateに渡して実行した方がいいよ〜

15デフォルトの名無しさん2015/03/03(火) 22:17:48.59ID:5JLHvWAD
dbfluteが一番じゃないの?

16デフォルトの名無しさん2015/07/19(日) 10:06:52.62ID:+OPOlpmY
>>15
情報が少ないよな。

17デフォルトの名無しさん2016/07/08(金) 23:16:19.44ID:oeqNGrjL
Oracle、Java EEから手を引く可能性も

http://s.news.mynavi.jp/news/2016/07/04/261/

18デフォルトの名無しさん2016/07/08(金) 23:50:11.05ID:oeqNGrjL
97 仕様書無しさん 2016/07/08(金) 23:45:00.35
Java EEの開発が停滞?--オラクルの不透明な態度にコミュニティーが不信感

http://japan.zdnet.com/article/35085410/

19デフォルトの名無しさん2016/08/10(水) 22:36:56.01ID:uPyxj/T5
株式会社TOUAが2016年7月に破産
http://www.tdb.co.jp/tosan/syosai/4191.html

新着レスの表示
レスを投稿する