Estoy utilizando HSQLDB para pruebas de integración de capa de datos, lo cual es genial. Sin embargo, estoy descubriendo que mis restricciones de clave externa están obstaculizando mis pruebas. Por ejemplo, para probar una selección simple en una tabla, tengo que insertar datos ficticios en cinco tablas adicionales. Esto me hace querer tirar cosas.TDD con HSQLDB - eliminación de claves externas
Tengo anotaciones JPA en todo el código del modelo y he configurado Hibernate para recrear el esquema (hbm2ddl.create-drop) en la configuración. Las uniones se interpretan correctamente como restricciones de clave externa cuando se generan las tablas.
Lo que me gustaría es que ya sea:
- no crea las claves externas inicialmente (ideal, más limpio), o
- encontrar una manera de soltar mediante programación todas las claves externas en la base de datos (un poco hacky pero hará el trabajo)
Si es útil, estoy usando Spring para autoconectar estas pruebas. Las pruebas en cuestión heredan de AbstractTransactionalJUnit4SpringContextTests.
¿Qué opinas? Se puede hacer esto?
¡Gracias! Simplemente cortó por sí solo mi clase de prueba a la mitad. Curiosamente, esto también hace que sea más fácil desentrañar donde Hibernate está causando uniones internas innecesarias. – roufamatic
Para cualquiera que use AbstractTransactionalJUnit4SpringContextTests ... la magia es esta: 'simpleJdbcTemplate.getJdbcOperations(). Execute (" SET REFERENTIAL_INTEGRITY FALSE; ");' – roufamatic
@roufamatic Me alegra que lo encuentre útil. –