Hibernate erstellt keine Tabellen mit H2 in der Speicherdatenbank
Posted: 06 Jan 2025, 22:08
Ich versuche, eine Anwendung zu testen, die SpringMVC und Hibernate mit MySQL verwendet. Ich habe versucht, HSQLDB zu verwenden, aber da die Syntax nicht mit der von MySQL übereinstimmt, funktionieren die Abfragen möglicherweise nicht, also habe ich mich für H2 entschieden.
Das Problem ist, dass beim Ausführen die Meldung „Tabelle MAILCONFIG nicht gefunden“ angezeigt wird Wenn ich es mit der INIT-Syntax erstellt habe, heißt es, dass es bereits existiert.
Ich habe einen einfachen Test konfiguriert, der nichts tut, ich möchte nur, dass er ausgeführt wird.
Ich habe die folgenden Dateien:
ServiceTest.java
applicationContext.xml
persistence.xml
MailConfig.java
Ich gebe im Test die Hibernate-Konfiguration an, da die Anwendung Java-Klassen und nicht die XML-Dateien verwendet.
Kann mir jemand dabei helfen? Oder wenn es eine einfachere Möglichkeit gibt, es mit Java-Klassen zu testen, ist das auch willkommen, ich konnte noch keine Lösung finden.
Ich möchte, dass es lokal funktioniert, und dann muss es auch mit Jenkins funktionieren, damit es funktioniert Erstellen Sie Dinge, die auf der VM nicht möglich sind.
Vielen Dank!
Das Problem ist, dass beim Ausführen die Meldung „Tabelle MAILCONFIG nicht gefunden“ angezeigt wird Wenn ich es mit der INIT-Syntax erstellt habe, heißt es, dass es bereits existiert.
Ich habe einen einfachen Test konfiguriert, der nichts tut, ich möchte nur, dass er ausgeführt wird.
Ich habe die folgenden Dateien:
ServiceTest.java
Code: Select all
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"file:src/test/resources/applicationContext.xml"})
@Transactional
@WebAppConfiguration
public class ServiceTest {
private static DataSource ds;
@BeforeClass
public static void setUpConnection(){
ds = new DataSource();
ds.setDriverClassName("org.h2.Driver");
ds.setUrl("jdbc:h2:mem:testDB");
ds.setUsername("sa");
ds.setPassword("");
HibernateConfiguration.dataSourceTest(ds);
}
@AfterClass
public static void cleanConnection(){
HibernateConfiguration.dataSourceTest(null);
}
}
Code: Select all
Code: Select all
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
org.hibernate.ejb.HibernatePersistence
Code: Select all
@Entity
public class MailConfig {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Long id;
@Column
String host;
}
Kann mir jemand dabei helfen? Oder wenn es eine einfachere Möglichkeit gibt, es mit Java-Klassen zu testen, ist das auch willkommen, ich konnte noch keine Lösung finden.
Ich möchte, dass es lokal funktioniert, und dann muss es auch mit Jenkins funktionieren, damit es funktioniert Erstellen Sie Dinge, die auf der VM nicht möglich sind.
Vielen Dank!