这是我的 SLSB:
@Stateless
public class MyService {
PersistenceContext(unitName = "abc")
EntityManager em;
public boolean exists(int id) {
return this.em.find(Employee.class, id) != null;
}
}
这是我的persistence.xml
(我使用的是 Glassfish v3):
<persistence>
<persistence-unit name="abc">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/MyDS</jta-data-source>
<properties>
<property name="hibernate.archive.autodetection" value="class" />
<property name="hibernate.dialect"
value="org.hibernate.dialect.MySQLInnoDBDialect" />
</properties>
</persistence-unit>
</persistence>
现在我正在尝试使用 OpenEJB 嵌入式容器创建一个测试。这是我的测试课:
class MyServiceText {
@Test
public void testChecksExistence() throws Exception {
Properties properties = new Properties();
properties.setProperty(
javax.naming.Context.INITIAL_CONTEXT_FACTORY,
"org.apache.openejb.client.LocalInitialContextFactory"
);
InitialContext ic = new InitialContext(properties);
// actual testing skipped
}
}
我想使用 HSQL 进行测试。如何指示 OpenEJB"abc"
在测试期间我的持久性单元必须指向 HSQL?我要创建一个新版本persistence.xml
吗?我要使用openejb.xml
吗?我迷失在他们的示例和文档中.. :(
这是一个 Maven-3 项目。