【发布时间】:2014-09-19 04:02:07
【问题描述】:
注意:我在 eclipse 论坛上发布了这个问题,但没有收到回复,尽管我认为我对问题的描述已经足够清楚了。
我把它贴在这里。如果有人可以提供帮助,那就太好了。
我有一个 JPA 实体类,它在数据库中没有支持它的表。我们只是创建了它,因为我们必须运行一个查询,该查询需要对许多表执行连接。因此,我们没有创建命名查询,而是采用原生查询方式来提高速度。那就是我们有一个 JPA 实体,例如:
@Entity
@SqlResultSetMapping(name = "userMapping", entities=@EntityResult(entityClass =
User.class))
@NamednativeQuery(name = "User.query", query = "-- native query here --",
resultSetMapping = "userMapping")
public class User {
}
现在可以使用 entityManager 对象正常运行,例如: em.createNamedQuery("User.query").setParameter("userParam", param).getResultList();
但是,在 entitymanager 容器环境(使用 EntityManagerFactory 创建)中使用 Testng 进行测试时,会抛出 0RA-942 表或视图不存在错误。我们尝试在persistence.properties 和SessionCustomizer 中启用use_native_sql = true。
我们使用 eclipselink JPA。
有人可以对此提供一些反馈吗?
谢谢
【问题讨论】:
-
您是否在容器与 JSE 环境中针对同一个数据库进行测试?
-
是的。我在 EntityManager(persistence-unit-name, persistence.properties); 中设置了持久性属性。我为此测试定制了数据库会话,并在其中设置了要使用的架构。
标签: jpa eclipselink testng nativequery