ドキュメントの検索

Ebean ORM

Java & Kotlin 用のパーシスタンス

サポートされるデータベース

H2, Postgres, MySql, NuoDB, PostGIS, MariaDB, SQL Server, Oracle, SAP Hana, CockroachDB, Clickhouse, Sqlite.

複数の抽象化レベル

Ebean は複数のレベルのクエリ抽象化を提供します。

最も高いレベルの抽象化を使用して、必要に応じて下位のレベルにドロップします。

ORM の利点

  • N+1 を自動的に回避
  • データベースの負荷を軽減する L2 キャッシング
  • データベースと L2 キャッシュを組み合わせたクエリ
  • ORM クエリの自動チューニング
  • 検索用または L3 キャッシュとしての Elasticsearch。

Docker テストコンテナ

サポートされているすべてのデータベースに対応するDocker テストコンテナ

使用しているデータベースのすべての機能について 100% テストカバレッジを入手します。

データベース移行

DB 移行の生成と実行が組み込まれています。

「再ベース」移行、繰り返しの可能な移行、初期化、および「通常の」移行のサポート。

型安全なクエリ

クエリビーンの型安全を使用してクエリを構築できます。

クエリ作成時の IDE 自動補完、コンパイル時間のチェック、楽しいです。

自動クエリチューニング

ORM クエリの場合、Ebean は使用されているオブジェクトグラフをプロファイリングして、クエリを自動的にチューニングできます。

優れた SQL

Ebean は、自分で手作業で作るときの SQL を生成します。

素晴らしい SQL を使用して、SQL カートジーアン製品を生成せず、常にリレーショナルな制限/オフセットを尊重します。

パフォーマンスはオプションではありません

クエリを最適化して、必要なもの (部分オブジェクト) のみをフェッチします。

スマートなロードコンテキストを介して、N+1 を自動的に回避します。

シルバースポンサー

MH
マクシミリアン・ホルツベルク
SH
サボルチ・フーバイ
AMAH
アル・モサファー・アル・ハサン
SL
サンドロ・ラインツィンガー

 

Ebean について

@Entity
@Table(name="customer")
public class Customer extends BaseModel {

  @Column(length=100)
  String name;

  @ManyToOne(cascade=CascadeType.ALL)
  Address billingAddress;

  @OneToMany(mappedBy="customer")
  List<Contact> contacts;
  ...
// insert ...
Customer customer = new Customer("Joe");
customer.save();

...

// find and update ...
Customer customer = Customer.find.byId(42);
customer.setName("Montana");
customer.save();
List<Customer> customers =

  new QCustomer()
    .name.istartsWith("rob")
    .billingAddress.city.equalTo("Auckland")
    .setMaxRows(10)
    .orderBy()
      .name.asc()
    .findList();