EBean ORM support (post-7.2.3) for the Ninja Web Framework
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ninja-ebean-ng-demo
ninja-ebean-ng-module
src/main/resources
.gitignore
README.md
changelog.md
license.txt
pom.xml

README.md

 _______  .___ _______        ____.  _____   
 \      \ |   |\      \      |    | /  _  \  
 /   |   \|   |/   |   \     |    |/  /_\  \
/    |    \   /    |    \/\__|    /    |    \
\____|__  /___\____|__  /\________\____|__  /
     web\/framework   \/                  \/

EBean "NG" (post-7.2.3) support for Ninja

EBean is a simple and powerful ORM tool. This plugin allows you to use EBean in any Ninja application.

Due to a change to the EBean API, the original ninja-ebean module only supports the EBean ORM up to version 7.2.3. In order to not break existing applications, this module is basically a copy of the original module, but provides the new API exclusively, which is likely useful for new applications.

More

Getting started

Configuring the module for your application is quite easy. There is a demo application that shows you how to do it. Check out subproject ninja-ebean-demo/pom.xml for further information.

More about EBean ORM

Overview

This module actually works with the latest versions of EBean. The module itself depends on version 7.20.1. Since this module more or less configures the Ebean server, it should be compatible with any Ebean release that continues to support current configuration properties.

Compatibility with EBean versions up to 7.2.3 is provided through the original ninja-ebean module, which may also support legacy versions of Ebean ORM.

NOTE: This module only supports a single (default) Ebean server. Feel free to contribute code to the project if you need other features. Thanks!

Setup

  1. Add your db conf to your application.conf file. For a simple H2 database:

    ebean.datasource.databaseUrl=jdbc:h2:./testdatabase:tests;DB_CLOSE_DELAY=-1;AUTO_SERVER=TRUE

For a MySQL database (you'll also need to add the MySQL driver dependency to your project)

ebean.ddl.generate = false
ebean.ddl.run = false
ebean.models = com.company.models.*,org.otherorg.models.Foo
ebean.datasource.name = NameOfEbeanServer
ebean.datasource.databaseUrl = jdbc:mysql://localhost:3306/dbname
ebean.datasource.databaseDriver = com.mysql.jdbc.Driver
ebean.datasource.username = root
ebean.datasource.password = test

Please note that ebean.models accepts a comma delimited list of both class names as well as packages (just make sure it ends with .*)

  1. Add the ninja-ebeans dependency to your pom.xml:

    com.jensfendler ninja-ebean-ng-module 0.0.1
  2. Add ebean's enhancer plugin to your pom.xml:

    org.avaje.ebeanorm avaje-ebeanorm-mavenenhancer 4.10.1 ebean-enhancer process-classes ${project.build.outputDirectory} models debug=1 enhance
  3. Install the module in your conf.Module:

    protected void configure() { // This installs the NinjaEbeanNGModule and handles the lifecycle install(new NinjaEbeanNGModule()); }

And that's it already :)

Thanks

Many thanks go to the original authors of the ninja-ebean module, in particular Raphael Bauer and Joe Lauer, for virtually all the code in this module. Although I hope to maintain and improve this module over time, it would not exist without them.