データ型

すべてのデータ型, 列挙型, UUID, ファイル, ブール値, 日時, 数値, その他

JPAマッピング
Ebeanマッピング拡張

コンストラクター

JPAとは異なり、Ebeanは既定のコンストラクタを必要としません。引数を持つコンストラクタを持つエンティティBeanを自由に作成できます。

命名規則

Ebeanは命名規則APIを使用しています。これは、通常、命名規則に従っていない場合にのみ@Column nameを指定する必要があるため、比較的重要な機能です。

同様に、命名規則(デフォルトでは「アンダースコア命名規則」)に従っている限り、通常、@JoinColumnまたは@JoinTableを明示的に使用する必要はありません。

コレクション

Hibernateとは異なり、EbeanではコレクションのマッピングにはSetではなくListを使用することを推奨しています。

JPAの注意事項

EbeanはJPA仕様と同じマッピングを使用します。同じマッピングアノテーションを学習して使用できます。これは通常、仕様の良い部分であり、仕様のこの部分は時代を超えて耐えられると期待しています。

JPAには、一般的に不十分な側面がいくつかあります。

列挙型 JPAにおける列挙型マッピングは不十分です。Ebeanは@DbEnumValue@EnumValueの2つの優れた代替案を提供します。この問題の進行状況をJPA JIRAイシュートラッカーで監視しています。
FetchType EAGER / LAZY

JPAマッピングは、使用ケースごとにクエリを最適化しようとするEbeanのクエリアプローチに反して、FetchTypeEAGERとLAZYの使用を推奨します(およびアプリケーションのプロファイリングによる自動クエリチューニングを提供します)。

EAGER LAZYマッピングアノテーションの使用は、通常、Ebeanを使用する場合には有用ではありません。

@Sizeおよび@NotNull

Ebeanは、javax validationアノテーション@Size@NotNullの使用をサポートします。

@Size マッピングされた列の幅を定義します。たとえば、@Size(50)は@Column(length=50)と同じです
@NotNull マッピングされた列をNULL以外として定義します。@Column(nullable = false)または@ManyToOne(optional=false)と同じです。

現在の制限

Ebeanは現在サポートしていませんが、時間をかけてサポートしたいJPAマッピングが多数あります。これらは拡張機能リクエストとして記録されています。

116

単一テーブル継承のみがサポートされています。

JOINEDまたはTABLE PER CLASS継承ストラテジーのサポートは計画されていません。

1777

サポートされているのは 1 つのタイプあたりのコンバーターのみ

JPA @Converter autoApply false は適用されません。つまり、1 つのタイプのマップが使用するすべてのプロパティに対してタイプは一貫性のあるものでなければならないという意味です。たとえば、1 つの Ebean データベースインスタンスで 2 つのコンバーターが Boolean を 2 つの異なる方法でマップすることはできません。

未解決のすべての問題と拡張機能の完全なリストは Github Issues で確認できます。

制約 タグが付けられた github の問題を参照してください。