Ceci est mon SLSB:Comment configurer correctement le conteneur OpenEJB intégré pour les tests?
@Stateless
public class MyService {
PersistenceContext(unitName = "abc")
EntityManager em;
public boolean exists(int id) {
return this.em.find(Employee.class, id) != null;
}
}
Ceci est mon persistence.xml
(j'utilise 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>
Maintenant, je suis en train de créer un test, en utilisant conteneur embarqué OpenEJB. Ceci est ma classe de test:
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
}
}
Je voudrais utiliser HSQL pour le test. Comment puis-je demander à OpenEJB que mon unité de persistance "abc"
doit pointer vers HSQL pendant le test? Dois-je créer une nouvelle version de persistence.xml
? Dois-je utiliser openejb.xml
? Je suis perdu dans leur examples and documentation .. :(
C'est un projet Maven-3.
Merci, pourriez-vous indiquer dans votre réponse comment configurer les propriétés Hibernate pour cette source de données (ou unité de persistance). Ou peut-être pouvez-vous donner un lien où cette information est divulguée? – yegor256
@Vincenzo, j'ai édité ma réponse, s'il vous plaît laissez-moi savoir si cela fonctionne. –
örn Merci beaucoup, maintenant ça marche! – yegor256