Ich entwickle eine Spring-Anwendung, wo alles mit Maven (in pom.xml
) konfiguriert ist. Meine Anwendung verwendet eine PostgreSQL-Datenbank, aber Komponententests verwenden eine speicherinterne HSQLDB-Datenbank.Konfigurieren HSQLDB mit Maven
Ich renne gerade in ein Problem mit TEXT
Spalten, weil sie nicht nativ von HSQLDB unterstützt werden. Ich habe in meiner Entity-Klasse:
private @Column(columnDefinition = "text") String propertyName;
Dies funktioniert gut mit Postgres, aber HSQLDB erzeugt die folgenden Fehler: type not found or user lacks privilege: TEXT
. Die Tabelle wird nicht erstellt, und als Ergebnis schlagen die meisten meiner Tests fehl.
Ich habe festgestellt, dass ich muss activate PostgreSQL compatibility, damit dies funktioniert, indem Sie sql.syntax_pgs
auf true
setzen.
Meine Frage ist: Wo setze ich diese Einstellung? Ich möchte es in pom.xml
setzen, da alles dort konfiguriert ist, aber ich weiß nicht wo.
Für exemple ich habe:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Dspring.profiles.active=test</argLine>
</configuration>
</plugin>
Kann ich irgendwie eine <argLine>
mit dieser Einstellung hinzufügen?
Wo gebe ich das hin? Das möchte ich auch nur, wenn ich das 'test' Profil verwende. – deadbeef
müssen Sie dies setzen, wenn Sie die HSQLDB für die Tests konfigurieren. Diese Eigenschaft wird für alle Tests mit hsqldb festgelegt. –
Ich konfiguriere HSQLDB nirgendwo, ich habe es nur in 'pom.xml' als Abhängigkeit hinzugefügt, es wird dann automatisch von maven verwendet, wenn Tests ausgeführt werden. – deadbeef