Sto utilizzando HSQLDB per i test di integrazione del livello dati, il che è ottimo. Tuttavia, sto scoprendo che i miei limiti alle chiavi esterne stanno ostacolando i miei test. Ad esempio, per testare una selezione semplice su una tabella, devo inserire i dati fittizi in cinque tabelle aggiuntive. Questo mi fa venire voglia di buttare le cose.TDD con HSQLDB - rimozione chiavi esterne
Ho annotazioni JPA in tutto il codice del modello e ho configurato Hibernate per ricreare lo schema (hbm2ddl.create-drop) nella configurazione. I join vengono interpretati correttamente come vincoli di chiave esterna quando vengono generate le tabelle.
Quello che mi piacerebbe è a uno:
- non crea le chiavi esterne inizialmente (ideale, più pulito), o
- trovare un modo per cadere di programmazione tutte le chiavi esterne nel database (kinda hacky ma avrà il lavoro finito)
Se è utile, sto usando Spring per autowire questi test. I test in questione ereditano da AbstractTransactionalJUnit4SpringContextTests.
Cosa ne pensi? Può essere fatto?
Grazie !!! Hai solo tagliato da solo la mia classe di test a metà. È interessante notare che questo rende anche più facile sradicare dove Hibernate sta causando inutili join interni. – roufamatic
Per chiunque utilizzi AbstractTransactionalJUnit4SpringContextTests ... la magia è questa: 'simpleJdbcTemplate.getJdbcOperations(). Execute (" SET REFERENTIAL_INTEGRITY FALSE; ");' – roufamatic
@roufamatic Contento che lo trovi utile. –