Ebean ORM

Persistence for Java & Kotlin


Easy to use persistence with save() and delete(), bulk updates, direct use of SQL when needed.
Built by developers for developers


Fast queries, batch persisting, bulk updates and deletes, great SQL. N+1 handling out of the box, L2 caching.
Enjoy the simplicity at full speed


Use SQL directly, Soft deletes, Auditing, JSON, Multi-tenant, History, Encryption, Array types ...
Can handle the hard stuff


Search documentation



About Ebean

JPA Mapping

Ebean uses JPA mapping annotations.

public class Customer extends BaseModel {

  String name;

  Address billingAddress;

  List<Contact> contacts;

Simple to use

Ebean provides a simple programming model that developers can understand and master quickly.

// insert ...
Customer customer = new Customer("Joe");


// find and update ...
Customer customer = Customer.find.byId(42);

Type safe queries

We can use Query beans to build queries in a type safe manner.

List<Customer> customers =

  new QCustomer()

more details on queries


After struggling with what I'd call surprising behavior of a JPA implementation, I discovered Ebean. Time and time again I found that Ebean simply works the way I expect it to. Love it!

Daryl Stultz
OpenTempo, Inc.