Oi galera,
eu não sei porque esta acontecendo o seguinte erro na minha aplicação:
Então vou disponibilizar as minhas tabelas para caso vocês consigam me ajudar a ver onde estou errando:
//Tabela User
DROP TABLE IF EXISTS `bytecodete`.`user`;
CREATE TABLE `bytecodete`.`user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`email` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`type` tinyint(1) unsigned NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
)
//Tabela company
DROP TABLE IF EXISTS `bytecodete`.`company`;
CREATE TABLE `bytecodete`.`company` (
`idUser` int(11) NOT NULL,
`fantasyName` varchar(55) NOT NULL,
`corporateName` varchar(55) NOT NULL,
`cnpj` varchar(14) NOT NULL,
PRIMARY KEY (`idUser`),
UNIQUE KEY `cnpj` (`cnpj`),
CONSTRAINT `company_ibfk_1` FOREIGN KEY (`idUser`) REFERENCES `user` (`id`)
ON DELETE CASCADE ON UPDATE CASCADE
)
// Tabela company links
DROP TABLE IF EXISTS `bytecodete`.`company_links`;
CREATE TABLE `bytecodete`.`company_links` (
`id` int(11) NOT NULL DEFAULT '0',
`idCompany` int(10) unsigned NOT NULL,
`serviceName` varchar(45) NOT NULL,
`link` varchar(45) NOT NULL,
PRIMARY KEY (`id`) USING BTREE,
CONSTRAINT `FK_company_links_1` FOREIGN KEY (`id`) REFERENCES `company` (`idUser`)
ON DELETE CASCADE ON UPDATE CASCADE
)
Pelo que entendo, esta exceção é lançada quando eu tento adicionar algo na tablea ‘company_links’ sem ter o id da ‘company’, porém este id já esta na tabela com o insert anterior.
De qualquer forma aqui esta a saída do meu hibernate:
11:47:30,809 INFO SessionFactoryObjectFactory:82 - Not binding factory to JNDI, no JNDI name configured
Hibernate:
insert
into
bytecodete.user
(email, password, type)
values
(?, ?, ?)
11:47:30,948 TRACE StringType:133 - binding 'valter.bcc@gmail.com' to parameter: 1
11:47:30,949 TRACE StringType:133 - binding 'U25YM/DOl5k=' to parameter: 2
11:47:30,950 TRACE IntegerType:133 - binding '2' to parameter: 3
Hibernate:
insert
into
bytecodete.company
(cnpj, corporateName, fantasyName, idUser)
values
(?, ?, ?, ?)
11:47:31,214 TRACE StringType:133 - binding '98806728000100' to parameter: 1
11:47:31,215 TRACE StringType:133 - binding 'Semana da Computação e Tecnologia' to parameter: 2
11:47:31,215 TRACE StringType:133 - binding 'SECOT' to parameter: 3
11:47:31,216 TRACE IntegerType:133 - binding '37' to parameter: 4
idCompany=37
Hibernate:
select
company_.idUser,
company_.cnpj as cnpj9_,
company_.corporateName as corporat3_9_,
company_.fantasyName as fantasyN4_9_
from
bytecodete.company company_
where
company_.idUser=?
11:47:31,300 TRACE IntegerType:133 - binding '37' to parameter: 1
11:47:31,316 TRACE StringType:172 - returning '98806728000100' as column: cnpj9_
11:47:31,316 TRACE StringType:172 - returning 'Semana da Computação e Tecnologia' as column: corporat3_9_
11:47:31,351 TRACE StringType:172 - returning 'SECOT' as column: fantasyN4_9_
Hibernate:
insert
into
bytecodete.company_links
(idCompany, link, serviceName, id)
values
(?, ?, ?, ?)
11:47:31,353 TRACE IntegerType:133 - binding '37' to parameter: 1
11:47:31,354 TRACE StringType:133 - binding 'http://www.flickr.com/services/api/' to parameter: 2
11:47:31,354 TRACE StringType:133 - binding 'Flickr' to parameter: 3
11:47:31,355 TRACE IntegerType:133 - binding '0' to parameter: 4
11:47:31,433 WARN JDBCExceptionReporter:77 - SQL Error: 1452, SQLState: 23000
11:47:31,452 ERROR JDBCExceptionReporter:78 - Cannot add or update a child row: a foreign key constraint fails (`bytecodete`.`company_links`, CONSTRAINT `FK_company_links_1` FOREIGN KEY (`id`) REFERENCES `company` (`idUser`) ON DELETE CASCADE ON UPDATE CASCADE)
Obrigado pela atenção galera.