Java
ORM
永続化

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

前ポスト

前置き

とりあえず中間結果となります。
まだ調査しきれていないので、後々追記します。

対象

  1. Doma2
  2. jOOQ
  3. Iciql
  4. Ebean
  5. EclipseLink
  6. Hibernate5
  7. Speedment

環境

  • PostgreSQL 9.6.3
  • Java 64bit 8u144

機能比較内容

  1. スキーマ跨ぎ結合
  2. DB跨ぎ結合
  3. 複合主キー使用テーブルに対するテーブル検索
  4. 複合主キー使用テーブルに対する結合
  5. 取得カラム制限時処理
  6. 件数制限付き取得
  7. 生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同様にその際どのようにカラム単位で結合したら良いか不明