Eclipse JNoSQL 0.0.7的新功能


Eclipse JNoSQL是一个Java框架,它简化了Java应用程序与NoSQL数据库的集成。它定义了一组应用编程接口,并为大多数NoSQL数据库提供了标准实现。这显然有助于实现与应用中使用的底层NoSQL技术的极低耦合。0.0.7版以文本形式提供了热查询。这篇文章将报道此次发布。

最新的Eclipse JNoSQL主要带有性能改进和错误修复。此外,还有两个亮点。

用分页状态改进卡珊德拉查询

Cassandra PagingState如果查询是多页的,则表示要提取的下一页。它可以在同一语句中保存和重用。

因此,Cassandra驱动程序有了一个新的类,它是DocumentQuery的一个专门化,其分页状态可能是字符串。

ColumnQuery query = select().from("entity").limit(6).build();
CassandraQuery cassandraQuery = CassandraQuery.of(query);
assertFalse(cassandraQuery.getPagingState().isPresent());
List<Person> entities = entityManager.select(cassandraQuery);
//it will return six entities and feed the paging state
assertTrue(cassandraQuery.getPagingState().isPresent());

用测试容器改进集成测试

为了在与NoSQL数据库(如ArangoDB)的通信实现中改进集成测试,这个版本采用了测试容器。Testcontainers是一个支持JUnit测试的Java库,它提供了轻量级的、一次性的通用数据库实例、硒网络浏览器或任何其他可以在Docker容器中运行的东西。

    private final GenericContainer arangodb =
            new GenericContainer("arangodb/arangodb:latest")
                    .withExposedPorts(8529)
                    .withEnv("ARANGO_NO_AUTH", "1")
                    .waitingFor(Wait.forHttp("/")
                            .forStatusCode(200));

    {
        arangodb.start();
    }

    @Override
    public ArangoDBDocumentCollectionManagerFactory get() {
        ArangoDBDocumentConfiguration configuration = new ArangoDBDocumentConfiguration();
        configuration.addHost(arangodb.getContainerIpAddress(), arangodb.getFirstMappedPort());
        return configuration.get();
    }

雅加达和NoSQL

到下一个版本,我们正在努力移动Eclipse JNoSQL under Jakarta EE specification;因此,预计还会有更多的社区参与,软件包名称可能会更改为另一个示例,如“jakarta.nosql”。