2017年度 Java 永続化フレームワークについての考察(1)

#前置き
当ポストは簡易比較表のみです。
感想とか考察とか個別のメモは続きとして別記事にしていきます。

JPA実装とかだとJPQL使うし、普通は対応DB一覧とかないよなぁ、って。
見づらくなったので画像としてペタ。

#簡易比較表

2017/08月初時点

![ORM20170804-2.PNG](https://qiita-image-store.s3.amazonaws.com/0/48666/a46ec63a-0641-7bce-741a-1b27acb1f0bb.png)

(2017/08/04 コメントを受け、[Hibernate5.2のDB対応状況](https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#database-dialect)を更新)
(2017/08/04 コメントを受け、[Doma2のDB対応状況](http://doma.readthedocs.io/ja/stable/config/#id6)を更新、あと頭文字を大文字に変更)

○:対応
×:非対応
-:明記なし
※1:有償版にて対応
※2:SQLからJavaソースを生成

|名称|ライセンス|体制|latest|SQL外部化|DSL |Oracle|DB2|MySQL|PostgreSQL|MariaDB|MS-SQL| H2 |Derby|Sybase|SQLite|依存 |Java|Stream Lamdba対応|備考|
|:---|:-------|:---|:-----|:-------|:--:|:----:|:-:|:---:|:--------:|:-----:|:----:|:--:|:---:|:----:|:-----|:---|:----|:---------------|:---|
|[S2DAO](http://s2dao.seasar.org/ja/)|Apache2.0|OSS|2013/10|○|×|○|○|○|○|-|○|○|○|○|-|なし|1.4<=|×|seasar系、EOL|
|[Doma1](http://doma.seasar.org/)|Apache2.0|OSS|2015/07|○|○|○|○|○|○|-|○|○|-|-|○|なし|1.6<=8|×|seasar系、EOL|
|[Doma2](http://doma.readthedocs.io/ja/stable/)|Apache2.0|OSS|2017/07|○|×|○|○|○|○|-|○|○|-|-|○|なし|8|○|seasar系|
|[S2JDBC](http://s2container.seasar.org/2.4/ja/s2jdbc.html)|Apache2.0|OSS|2015/10|○|○|○|○|○|○|-|○|○|○|○|○|JPA||×|seasar系、EOL|
|[Iciql](http://iciql.com/)|Apache2.0|OSS|2017/05|×|○|-|-|○|○|-|-|○|○|-|○|なし|6<=|×|明記してなくてもダイアレクトで対応とのこと|
|[SimpleFlatMapper](https://github.com/arnaudroger/SimpleFlatMapper)|MIT|OSS|2017/07|×|×|-|-|-|-|-|-|-|-|-|-|なし|1.6<=9|×|マッピングのみであるためDSLなどの機能はない、ビルドエラー中の模様|
|[mybatis](http://www.mybatis.org/mybatis-3/)|Apache2.0|OSS|2017/07|○|○|-|-|-|-|-|-|-|-|-|-|なし|1.6<=|×||
|[Hibernate5.2](http://hibernate.org/orm/)|LGPL|OSS|2017/07|×|○|○|○|○|○|○|○|○|○|○|-|JPA, JDBC4.2|8<=|×|redhat系|
|[EclipseLink2.6](https://www.eclipse.org/eclipselink/)|Eclipse Public License v1.0, Eclipse Distribution License v1.0|OSS|2016/08|×|○|○|○|○|○|-|-|○|○|○|-|JPA|7<=|×|eclipse系|
|[Ebean](http://ebean-orm.github.io/)|Apache2.0|OSS|2017/07|×|○|-|-|-|-|-|-|-|-|-|-|JPA|8<=|×||
|[Cayenne4.0](http://cayenne.apache.org/)|Apache2.0|OSS|2017/01|×||-|-|-|-|-|-|-|-|-|-|slf4j|7<=|×|Apache系、「ポータビリティはJDBCとアプリケーションに準ずる」とのこと|
|[jOOQ](https://www.jooq.org/)|Apache2.0+有償|OSS+Closed|2017/07|※2|○|※1|※1|○|○|○|※1|○|○|-|○|?|8<=(※追加Libで6<=)|×|「生成されたSQLはドライバがサポートしているすべてのDBに対応」とのこと、有償版あり|
|[Reladomo](https://github.com/goldmansachs/reladomo)|Apache2.0, CDDL, bsd(asm), MIT(slf4j)|OSS|2017/07|×|○|○|○|○|○|-|○|○|○|○|-|asm, slf4j|1.6.0_45<=|×|goldmansachs系|
|[Speedment](https://www.speedment.com/)|Apache2.0+有償|OSS+Closed|2017/07|×|○|※1|※1|○|○|○|※1|-|-|-|-|なし|8<=|○|有償あり|

#参考記事
- [Hibernateはどのようにして私のキャリアを破滅寸前にしたか](https://www.kaitoy.xyz/2017/02/23/how-hibernate-ruined-my-career/)
- [JPAとDDDの関係で僕が思っていること](http://qiita.com/opengl-8080/items/944a6383f81dd3406486)
- [Data Geekery Releases Version 3.9.0 of jOOQ, a Java ORM Tool for Building Type Safe Queries](https://www.infoq.com/news/2017/02/data-geekery-releases-jooq-3-9)
- [jOOQ使用方法のまとめ](http://qiita.com/rubytomato@github/items/93ed18b30605f4491086)
- [ReladomoというORMを触ってみた](http://matsu-chara.hatenablog.com/entry/2017/04/08/110000)
- [Speedment Releases Stream ORM Version 3.0.1](https://www.infoq.com/news/2016/12/speedment-releases-version-3)