如何在 JEE 实体管理器中使用来自 testcontainer 的数据源

问题描述

在一个项目中,我们没有使用 spring(存在大量关于 testcontainers 的信息),而是一个相当旧的 jboss 版本 6.4.0.EAP 和 hibernate,我们无法更改。测试框架是 junit4 并且在某种程度上是 arquillian。

我尝试改进集成测试,并希望至少在数据库测试设置中使用 testcontainers。我知道如何启动 testcontainer(在那种情况下是 mysqlcontainer)以及如何运行现有的 liquibase 脚本。

我坚持的是: 如何使用数据源,我可以在这里从我启动的容器中获取

public DataSource getDataSource(MySQLContainer<?> mySQLContainer) {
    MysqlDataSource ds = new MysqlDataSource();
    ds.setUser(mySQLContainer.getUsername());
    ds.setPassword(mySQLContainer.getPassword());
    ds.setURL(mySQLContainer.getJdbcUrl());
    return ds;
}

创建一个实体管理器,然后将其注入现有的 Dao 中? 应用程序中的 Dao 定义如下

@ApplicationScoped
public class MyDao {

    @Inject
    private EntityManager entityManager;

    protected EntityManager getEM() {
        return entityManager;
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)