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


前置き

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

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

簡易比較表

2017/08月初時点

(2017/08/04 コメントを受け、Hibernate5.2のDB対応状況を更新)
(2017/08/04 コメントを受け、Doma2のDB対応状況を更新、あと頭文字を大文字に変更)

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

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

参考記事