【问题标题】:Overriding Table names for Arquillian Tests + sql-maven-plugin覆盖 Arquillian 测试的表名 + sql-maven-plugin
【发布时间】:2018-07-29 11:13:21
【问题描述】:

在我们的项目中,我们使用来自内部库的实体(我们使用将它们作为 JAR 包含在内)。类本身看起来像这样(此处无法粘贴真实代码)。

@Table(name = "X_MY_ENTITY")
public class MyEntity{
//columns...
}

在我们的 persistence.xml 中,我们包含一个映射文件,将表名映射到我们的约定。

  <entity class="com.example.MyEntity">
        <table name="REALNAME_MY_ENTITY"/>
        <sequence-generator name="id_seq" sequence-name="REALNAME_MY_ENTITY_SEQ" allocation-size="1"/>
    </entity>

一切正常。

现在我们使用 Arquillian 进行集成测试,并使用 sql-maven-plugin 生成测试模式。现在我希望插件也生成一个视图。在 sql-maven-plugin 的配置中,我包含了一个创建视图的 sql 文件。此视图使用上面提到的表格(例如create or replace view EXAMPLE_VIEW as select * from REALNAME_MY_ENTITY)。但是当我尝试构建项目时,出现错误:Table "REALNAME_MY_ENTITY" not found;

我在 src/test/resources/META-INF/orm.xml 中获得了我的 orm.xml(映射文件),包括它到我的部署包和我的 test-persistence.xml 中

我们正在使用:

  • Java 8 + Java EE7
  • 打开 EJB v 7.0.4
  • Arquillian JUnit 核心 1.1.11.Final
  • sql-maven-plugin v1.5

如何配置使用映射表名的 Arquillian 或 sql-maven-plugin?

【问题讨论】:

  • 所以视图可以工作(见表格),但代码虽然以前工作正常,但不能正常工作,对吧?您确定测试环境中的架构名称与之前的工作方式相同吗?
  • 或者您的意思是 arquillian 无法读取 orm.xml 文件?您是否尝试使用 @Table*name="REALNAME_MY_ENTITY") 来注释实体只是为了确定问题出在哪里
  • 我找到了:我看错地方了。显然模式是由 hibernate4-maven-plugin 生成的,您可以配置一个映射文件(hibernateMapping)。现在 sql-maven-plugin 生成具有正确名称的表。

标签: java jpa java-ee-7 jboss-arquillian sql-maven-plugin


【解决方案1】:

我找到了:我看错地方了。显然模式是由 hibernate4-maven-plugin 生成的,您可以配置一个映射文件(hibernateMapping)。现在 sql-maven-plugin 生成具有正确名称的表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-13
    • 2016-10-02
    • 1970-01-01
    • 2021-03-31
    • 2019-05-02
    • 2018-05-24
    • 2022-07-24
    相关资源
    最近更新 更多