NuoDB
Testing
To test against NuoDB docker test container set the platform to postgres in
src/test/resources/application-test.yaml
Refer to docs / testing if application-test.yaml doesn't exist yet.
ebean:
test:
platform: nuodb # h2, nuodb, postgres, ...
ddlMode: dropCreate # none | dropCreate | migrations
dbName: my_app
ebean-nuodb dependency
We can use the io.ebean:ebean-nuodb dependency rather than io.ebean:ebean if we want to only
bring in the NuoDB specific platform code. Depending on io.ebean:ebean will bring in all platforms.
Types
UUID
NuoDB does not have a native UUID type. Instead this will be mapped to database binary(16) or varchar(40) based on the setting of PlatformConfig.DbUuid.
Array types
NuoDB does not have array types and these types are instead simulated.
JSON
Properties with @DbJson and @DbJsonB are mapped to database varchar or clob.
History support
History support for NuoDB is provided by generating triggers and history table.
Table Partitioning
NuoDB supports table partitioning but this is not supported by Ebean yet (via @DbPartition).
Docker container
We can programmatically start a docker container version of NuoDB.
The below uses ebean-test-docker dependency which already comes with ebean-test.
If we do not have a dependency on ebean-test then add io.ebean:ebean-test-docker:5.0
as a dependency.
package main;
import io.ebean.docker.commands.NuoDBContainer;
public class Main {
public static void main(String[] args) {
NuoDBContainer container = NuoDBContainer.newBuilder("4.0")
.schema("my_app")
.user("my_app")
.password("test")
.build();
container.start();
}
}