前ポスト
- 2017年度 Java 永続化フレームワークについての考察(1)
- 2017年度 Java 永続化フレームワークについての考察(2) Doma2
- 2017年度 Java 永続化フレームワークについての推測(3) Reladomo
- 2017年度 Java 永続化フレームワークについての考察(4) jOOQ
- 2017年度 Java 永続化フレームワークについての考察(5) Iciql
- 2017年度 Java 永続化フレームワークについての考察(6) Ebean
- 2017年度 Java 永続化フレームワークについての考察(7) EclipseLink
- 2017年度 Java 永続化フレームワークについての考察(8) Hibernate5
- 2017年度 Java 永続化フレームワークについての考察(9) Speedment
前置き
とりあえず中間結果となります。
まだ調査しきれていないので、後々追記します。
対象
- Doma2
- jOOQ
- Iciql
- Ebean
- EclipseLink
- Hibernate5
- Speedment
環境
- PostgreSQL 9.6.3
- Java 64bit 8u144
機能比較内容
- スキーマ跨ぎ結合
- DB跨ぎ結合
- 複合主キー使用テーブルに対するテーブル検索
- 複合主キー使用テーブルに対する結合
- 取得カラム制限時処理
- 件数制限付き取得
- 生SQLの発行
比較
名称 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
Doma2 | ※1 | ※1 | ※1 | ※1 | ※1 | ○ | ○ |
jOOQ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
Iciql | ※1 | ※1 | ○ | ※1 | ? | ? | ○ |
Ebean | ○ | ? | ○ | ※2 | ? | ○ | ○ |
EclipseLink | ○ | ? | ○ | ※2 | ? | ○ | ○ |
Hibernate5 | ○ | ? | ○ | ※3 | ? | ○ | ○ |
Speedment | ○ | ○ | ○ | ○ | ○ | ○ | × |
○:可能
×:不可
?:確認しきれていません
※1: SQLを直接利用するためスキーマ、DB跨ぎでの問題は発生しないが専用Entityを作成する、あるいはSQL側の工夫が必要
※2: EmbeddedIdを使用した場合、カラム単位での結合方法が不明
※3: Hibernate5ではcomposite-idという名でEmbeddedIdを推奨しているが、※2同様にその際どのようにカラム単位で結合したら良いか不明