I have a big problem
my unitils.properties:
database.driverClassName=com.mysql.jdbc.Driver database.url=jdbc:mysql://localhost/timesheet_test database.userName=root database.password= database.schemaNames=timesheet_test database.dialect=mysql updateDataBaseSchema.enabled=true dbMaintainer.script.locations=src/test/resources/dbscripts dataSetStructureGenerator.xsd.dirName=target/xsd dbMaintainer.autoCreateExecutedScriptsTable=true dbMaintainer.disableConstraints.enabled=false ## MΓ³dulos do unitils unitils.module.database.enabled=true unitils.module.dbunit.enabled=true unitils.module.hibernate.enabled=true unitils.module.spring.enabled=true unitils.module.mock.enabled=false unitils.module.easymock.enabled=false unitils.module.inject.enabled=false unitils.module.jpa.enabled=false DatabaseModule.Transactional.value.default=rollback
my database.sql:
SET @ OLD_UNIQUE_CHECKS=@ @UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @ OLD_FOREIGN_KEY_CHECKS=@ @FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @ OLD_SQL_MODE=@ @SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES'; CREATE SCHEMA IF NOT EXISTS `timesheet_test` DEFAULT CHARACTER SET latin1 ; USE `timesheet_test` ; -- ----------------------------------------------------- -- Table `timesheet_test`.`DATA` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `timesheet_test`.`DATA` ( `ID_DATA` BIGINT(20) NOT NULL AUTO_INCREMENT , `DATA` DATETIME NOT NULL , PRIMARY KEY (`ID_DATA`) , UNIQUE INDEX `data_UNIQUE` (`DATA` ASC) , UNIQUE INDEX `ID_DIAS_UNIQUE` (`ID_DATA` ASC) ) ENGINE = InnoDB AUTO_INCREMENT = 1000 DEFAULT CHARACTER SET = latin1; -- ----------------------------------------------------- -- Table `timesheet_test`.`USUARIO` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `timesheet_test`.`USUARIO` ( `ID_USUARIO` BIGINT(20) NOT NULL AUTO_INCREMENT , `E_MAIL` VARCHAR(100) NOT NULL , `SENHA` VARCHAR(10) NOT NULL , `NOME` VARCHAR(100) NULL DEFAULT NULL , PRIMARY KEY (`ID_USUARIO`) , UNIQUE INDEX `E_MAIL_UNIQUE` (`E_MAIL` ASC) , UNIQUE INDEX `ID_USUARIO_UNIQUE` (`ID_USUARIO` ASC) ) ENGINE = InnoDB AUTO_INCREMENT = 1000 DEFAULT CHARACTER SET = latin1; -- ----------------------------------------------------- -- Table `timesheet_test`.`TIME_SHEET` -- ----------------------------------------------------- CREATE TABLE IF NOT EXISTS `timesheet_test`.`TIME_SHEET` ( `ID_TIME_SHEET` BIGINT(20) NOT NULL AUTO_INCREMENT , `INICIO` VARCHAR(8) NOT NULL , `FIM` VARCHAR(8) NOT NULL , `LONGITUDE` DOUBLE NULL DEFAULT NULL , `LATITUDE` DOUBLE NULL DEFAULT NULL , `OBSERVACAO` VARCHAR(200) NULL DEFAULT NULL , `ID_DATA` BIGINT(20) NOT NULL , `ID_USUARIO` BIGINT(20) NOT NULL , PRIMARY KEY (`ID_TIME_SHEET`) , UNIQUE INDEX `ID_TIME_SHEET_UNIQUE` (`ID_TIME_SHEET` ASC) , INDEX `FK9735054D39B29F66` (`ID_DATA` ASC) , INDEX `FK9735054D9DA5550A` (`ID_USUARIO` ASC) , CONSTRAINT `FK9735054D9DA5550A` FOREIGN KEY (`ID_USUARIO` ) REFERENCES `timesheet_test`.`USUARIO` (`ID_USUARIO` ), CONSTRAINT `FK9735054D39B29F66` FOREIGN KEY (`ID_DATA` ) REFERENCES `timesheet_test`.`DATA` (`ID_DATA` )) ENGINE = InnoDB AUTO_INCREMENT = 1000 DEFAULT CHARACTER SET = latin1; USE `timesheet_test` ; SET SQL_MODE=@OLD _SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD _FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD _UNIQUE_CHECKS;
I have 65 tests and I have a problem with 6 and the same error:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`timesheet_test`.`time_sheet`, CONSTRAINT `FK9735054D39B29F66` FOREIGN KEY (`ID_DATA`) REFERENCES `DATA` (`ID_DATA`))
My test is a "search", not a "delete", but I think that when unitils tries to delete a line to start a new test, you have problems.
Does anyone have an idea?
thanks