Это мой SLSB:Как правильно настроить встроенный контейнер OpenEJB для тестов?
@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
? Я потерял в их examples and documentation .. :(
Это проект Maven-3.
örn Спасибо, не могли бы вы указать в своем ответе, как мне настроить свойства Hibernate для этого источника данных (или единицы продолжительности) .. Или, может быть, вы можете указать ссылку, в которой эта информация будет раскрыта? – yegor256
@ Vincenzo, я отредактировал свой ответ, пожалуйста, дайте мне знать, если это сработает. –
örn Большое спасибо, теперь это работает! – yegor256