0

在我们的项目中,我们使用来自内部库的实体(我们使用将它们包含为 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?

4

1 回答 1

0

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

于 2018-02-19T09:30:37.730 回答