example hibernate spring maven-2 junit hsqldb

hibernate - example - spring boot h2 memory db



¿Cuál es la mejor manera de lanzar HSQLDB para pruebas de unidades cuando se trabaja con spring, maven e hibernate? (5)

En mi proyecto puedo probar con éxito el código de la base de datos. Estoy usando Spring, Hibernate, HSQLDB, JUnit y Maven.

El problema es que actualmente tengo que iniciar HSQLDB manualmente antes de ejecutar las pruebas. ¿Cuál es la mejor manera de automatizar el lanzamiento de HSQLDB con las tecnologías utilizadas?





Yo mismo uso la base de datos en memoria de hsql para probar mi DAO. Como resultado, no necesito estar conectado a ningún servidor externo de bases de datos o tener una conexión de red.
Use las siguientes configuraciones:

jdbc.driverClassName=org.hsqldb.jdbc.JDBCDriver

jdbc.url=jdbc:hsqldb:mem:DatabaseName

También incluye el

<property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop> <prop key="default_schema">test</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">false</prop> <prop key="hibernate.hbm2ddl.auto">create</prop> </props> </property>

Esto le permitirá utilizar la base de datos en memoria y creará automáticamente las tablas de la base de datos a partir de objetos en hibernación antes de ejecutar las pruebas.

Espero que esto te ayudará.

Nota:

La propiedad "default_schema" se usa cuando su DBA crea múltiples esquemas dentro de una sola base de datos. He visto esto en postgres donde todos usan una URL de base de datos, pero debajo de eso hay esquemas separados para cada aplicación.

Al usar la propiedad de esquema predeterminada, le permite mantener los nombres de esquema fuera de sus entidades. Esto es particularmente útil si está ejecutando pruebas en HSqlDB que no admite esquemas y lo implementa en una base de datos que usa esquemas. Tener un valor nulo significa que vuelve a los valores predeterminados del esquema predeterminado de la base de datos.


Estoy asumiendo que con hsql te estás refiriendo a HSQLDB .

Configure la url de su base de datos para los controladores JDBC (para hibernación, etc.) a la versión basada en memoria integrada de HSQLDB:

jdbc:hsqldb:mem:myunittests

Luego, una versión en proceso de HSQLDB inicia automáticamente las cosas que almacena en la memoria. No es necesario iniciar ningún servidor externo.