commit 20152e16891582f8ff466a93ec2cf01871824d6d Author: Rob Bygrave <robin.bygrave@gmail.com> Date: Tue Feb 27 20:59:51 2024 +1300 #3341 Update DatabaseConfig for fluid style + javadoc commit1c495a7384Author: Roland Praml <roland.praml@foconis.de> Date: Mon Feb 26 10:25:42 2024 +0100 Fix: Compile errors commit574876b758Merge:df7b0487777634fc3eAuthor: Roland Praml <roland.praml@foconis.de> Date: Fri Feb 23 16:16:39 2024 +0100 Merge branch 'master-rob' into FOCONIS-string-length-validation commitdf7b04877dAuthor: Rob Bygrave <robin.bygrave@gmail.com> Date: Mon Jun 26 21:16:32 2023 +1200 #3121 BindMaxLength validation At deploy time derive a BindMaxLength property to use per BeanProperty commit4683877e0bMerge:9a4b9d4bed0020ab8cAuthor: Rob Bygrave <robin.bygrave@gmail.com> Date: Fri Jun 23 16:51:34 2023 +1200 Merge branch 'string-length-validation' of github.com:FOCONIS/ebean into FOCONIS-string-length-validation commitd0020ab8ceAuthor: Roland Praml <roland.praml@foconis.de> Date: Tue Jun 20 14:47:20 2023 +0200 Length validation less invasive commit9b3b8ad46aAuthor: Roland Praml <roland.praml@foconis.de> Date: Tue Jun 20 13:03:04 2023 +0200 extended DataBind, so that it could return the last bound object commitca3c02bc1cAuthor: Roland Praml <roland.praml@foconis.de> Date: Mon Jun 19 09:52:52 2023 +0200 Failing test for SqlServer
Build with database platforms
Build with Java Early Access versions
Ebean ORM for Java & Kotlin
Multiple abstraction levels: Ebean provides multiple levels of query abstraction ORM Queries, mixed with SQL, DTO Queries, SqlQuery and JDBC. Work at the highest level of abstraction and drop down levels as needed.
Database migrations: Built in DB migration generation and running. Support for "rebase" migrations as well as repeatable, init and 'normal' migrations.
Awesome SQL: Ebean produces SQL that you would hand craft yourself. Use great SQL, never generate SQL cartesian product, always honor relational limit/offset.
Automated query tuning: For ORM queries Ebean can profile the object graph being used and either automatically tune the query.
Docker test containers: Docker test containers for all the supported databases. Get 100% test coverage on all the features of the database we use.
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.
Performance isn't optional: Optimise queries to only fetch what we need (partial objects). Automatically avoid N+1 via a smart load context.
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
Sponsors
|
|
|
|
Need help?
Post questions or issues to the Ebean google group or github discussions
Documentation
Maven central
Building Ebean from source
- JDK 11 or higher installed
- Maven installed
git clone git@github.com:ebean-orm/ebean.gitmvn clean install
Ebean 13 uses Java modules with module-info. This means that there are stricter compilation rules in place now than when building with classpath pre version 13.
For Maven Surefire testing we use <surefire.useModulePath>false</surefire.useModulePath> such
that tests run using classpath and not module-path. We are doing this until all the tooling
(Maven, IDE) improves in the area of testing with module-info.
Eclipse IDE
Right now we can't use Eclipse IDE to build Ebean and run its tests due to its poor support for java modules. See ebean/issues/2653
The current recommendation is to use IntelliJ IDEA as the IDE to build and hack Ebean.
IntelliJ IDEA
We want to get IntelliJ to run tests using classpath similar to Maven Surefire. To do this set:
JUnit -> modify options -> Do not use module-path option
To set this option as the global default for IntelliJ use:
Run - Edit Configurations -> Edit configuration templates -> JUnit -> modify options - Do not use module-path option
end