在我们的项目中,我们正在使用Inhouse库中的实体(我们将其包括在内(。该类本身看起来像这样(在这里不能粘贴真实的代码(。
@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/test/resources/meta-inf/orm.xml中获得了我的orm.xml(映射-fie(,其中包括我的部署包装和我的test-persistence.xml
我们正在使用:
- Java 8 Java EE7
- 打开EJB V 7.0.4
- Arquillian Junit Core 1.1.11.final
- sql-maven-plugin v1.5
如何配置使用映射的表名称的Arquillian或SQL-Maven-Plugin?
我找到了它:我看着错误的地方。显然,该架构是由Hibernate4-Maven-Plugin生成的,您可以配置映射文件(HibernateMapping(。现在,SQL-Maven-Plugin生成了具有正确名称的表。