Duvida BD mysql + hibernate

ae! Pessoal,

Alguem sabe dizer o que tem de errado, ja criei as fks, os indices, ja que tenho um bd InnoDB. mas ao executar minha simples classe java para testar to tento as msg abaixo como resultado:
http://www.guj.com.br/posts/list/197808.java#992775

*nao eh querendo duplicar o topico, eh que tinha aberto em um local onde nao devia e nao achei a opcao de mover topico.

   1. CREATE TABLE `advert` (  
   2.   `id` int(10) unsigned NOT NULL auto_increment,  
   3.   `message` varchar(45) default NULL,  
   4.   `title` varchar(45) default NULL,  
   5.   `aduser` int(10) unsigned NOT NULL default '1',  
   6.   PRIMARY KEY  (`id`),  
   7.   KEY `aduser` (`aduser`),  
   8.   CONSTRAINT `FK_advert_user` FOREIGN KEY (`aduser`) REFERENCES `advert` (`aduser`) ON DELETE CASCADE ON UPDATE CASCADE  
   9. ) ENGINE=InnoDB DEFAULT CHARSET=latin1  

Impressão minha ou voce esta fazendo uma FK para a mesma tabela e para o mesmo campo??

bem eu tentei executar o code abaixo e nao conseguir:

alter table link_category_advert add constraint fk_category_advert foreign key(advert) references advert;

Agora um detalhe que conseguir executar quando mudei o tipo do bd para MyISAM. porem com InnoDB sem sucesso.

e ae, blz?

veja porque não funcionou

abs

pow. entao nao posso rodar com InnoDB?

yes, mas tem que configurar no my.ini

http://www.stardeveloper.com/articles/display.html?article=2003090201&page=2

dá uma checada na versão, os parametros podem mudar, faz muuuito tempo que eu fiz isso…

pow vou ter que configurar o my.ini, mas assim eh algo meio sem sentido, como vamos criar uma app c/ varias tables e nao ter nenhum relacionamento com FK isso acontece em poucos casos.

grande Andre vou ver aqui e configurar para ver se consigo rodar com InnoDB.

thanks! :smiley:

Voce prestou atenção no que escrevi??

Voce esta fazendo um relacionamento de uma tabela para com ela mesma, isto nao é proibido, mas é isto mesmo o que voce esta querendo???

Bom se voce olhar o log ele esta dando erro na “FK_advert_user”, ai vejamos quem é este cara.

Este cara é uma FK da tabela Advert, ai que esta, veja que a tabela de referencia “REFERENCES” É mesma tabela Advert.

Repito isto é até possivel, mas voce esta ciente disto? Esta dizendo que existe um relacionamento deste tipo |Advert| 1…N |Advert|, se este for realmente o caso, agora vou mais profundo, o campo aduser é not null, me explica como voce vai conseguir inserir o primeiro registro nesta tabela :shock: :shock: :shock: ??? Se para isto eu preciso indicar uma referencia(campo aduser) de um registro que ja existe???

opa! fred,vc tem razao a modelagem estava errada, e conforme a sua sugestao implementei e deu certo. Abaixo como ficou:

CONSTRAINT `FK_link_advert_category` FOREIGN KEY (`category`) REFERENCES `advert` (`id`)
 CONSTRAINT `FK_link_category_advert` FOREIGN KEY (`advert`) REFERENCES `advert` (`id`)

e o da table advert:

CONSTRAINT `FK_advert_user` FOREIGN KEY (`aduser`) REFERENCES `aduser` (`id`)

Galera quero agradecer a vcs heehe, esse eh velho e grande GUJ.

thanks.