Das ist mein SLSB:Wie konfiguriere ich einen eingebetteten OpenEJB-Container für Tests richtig?
@Stateless
public class MyService {
PersistenceContext(unitName = "abc")
EntityManager em;
public boolean exists(int id) {
return this.em.find(Employee.class, id) != null;
}
}
Das ist mein persistence.xml
(ich bin mit 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>
nun einen Test zu erstellen Ich versuche, OpenEJB eingebettet Behälter verwenden. Das ist meine Testklasse:
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
}
}
Ich möchte HSQL zum Testen verwenden. Wie kann ich OpenEJB anweisen, dass meine Persistenzeinheit "abc"
während des Testens auf HSQL zeigen muss? Soll ich eine neue Version von persistence.xml
erstellen? Soll ich openejb.xml
verwenden? Ich bin in ihren examples and documentation verloren .. :(
Es ist ein Maven-3-Projekt.
Vielen Dank, könnten Sie bitte in Ihrer Antwort angeben, wie kann ich Hibernate-Eigenschaften für diese Datenquelle (oder Persistenzeinheit) konfigurieren .. Oder vielleicht können Sie einen Link geben, wo diese Informationen veröffentlicht werden? – yegor256
@Vincenzo, ich habe meine Antwort bearbeitet. Bitte lassen Sie mich wissen, ob das funktioniert. –
örn Vielen Dank, jetzt klappt es! – yegor256