Search documentation
Databases supported
H2, Postgres, MySql, NuoDB, PostGIS, MariaDB, SQL Server, Oracle, SAP Hana, CockroachDB, Clickhouse, Sqlite.
Benefits of ORM
- Automatically avoid N+1
- L2 caching to reduce database load
- Queries mixing database and L2 cache
- Automatically tune ORM queries
- Elasticsearch for search or L3 cache.
Docker test containers
Docker test containers for all the supported databases.
Get 100% test coverage on all the features of the database we use.
Database migrations
Built in DB migration generation and running.
Support for "rebase" migrations as well as repeatable, init and 'normal' migrations.
Type safe queries
We can build queries using type safe query beans.
IDE auto-complete when writing queries, compile time checking and it's FUN.
Awesome SQL
Ebean produces SQL that you would hand craft yourself.
Use great SQL, never generate SQL cartesian product, always honor relational limit/offset.
Performance isn't optional
Optimise queries to only fetch what we need (partial objects).
Automatically avoid N+1 via a smart load context.
silver sponsors
MH
Maximilian HoltzbergSH
Szabolcs HubaiAMAH
Al-Mothafar Al-HasanSL
Sando LeinzingerAbout 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();