SAP Hana

测试

若要使用 SAP Hana 进行测试,请将 src/test/resources/application-test.yaml 中的 platform 设置为 hana

如果 application-test.yaml 尚未存在,请参阅 文档 / 测试

ebean:
  test:
    platform: hana # h2, postgres, mysql, oracle, sqlserver
    ddlMode: dropCreate # none | dropCreate | migrations
    dbName: test

上述内容将使用以下默认值

用户名SYSTEM
密码HXEHana1
数据库名称HXE
端口39017
URLjdbc:sap://localhost:{port}/?databaseName={databaseName}
驱动程序com.sap.db.jdbc.Driver
映像store/saplabs/hanaexpress:{version}

ebean-hana 依赖项

如果我们只想引入 Hana 特定的平台代码,我们可以使用 io.ebean:ebean-hana 依赖项,而不是 io.ebean:ebean。依赖于 io.ebean:ebean 会引入所有平台。

Docker 容器

我们可以以编程方式启动 Hana 的 docker 容器版本。

以下内容使用 ebean-test-docker 依赖项,该依赖项已随 ebean-test 一起提供。如果我们没有对 ebean-test 的依赖项,则添加 io.ebean:ebean-test-docker:5.0 作为依赖项。

package main;

import io.ebean.docker.commands.HanaContainer;

public class Main {

  public static void main(String[] args) {

    HanaContainer.Builder builder = HanaContainer.newBuilder("2.00.033.00.20180925.2");
    builder.port(39117);
    builder.instanceNumber("91");
    try {
      builder.passwordsUrl(new URL("file:///hana/mounts/" + this.passwordsFile.getFileName()));
    } catch (MalformedURLException e) {
      fail(e.getMessage());
    }
    builder.mountsDirectory(this.tempDir.toString());
    builder.agreeToSapLicense(false);

    HanaContainer container = builder.build();

    container.start();
  }
}