Duvida BD mysql + hibernate

8 respostas
LPJava

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.

8 Respostas

fredferrao
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??

LPJava

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.

Andre_Fonseca

e ae, blz?

veja porque não funcionou

abs

LPJava

pow. entao nao posso rodar com InnoDB?

Andre_Fonseca

yes, mas tem que configurar no my.ini

http://www.stardeveloper.com/articles/display.html?article=[telefone removido]&page=2

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

LPJava

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:

fredferrao

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???

LPJava

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.

Criado 10 de fevereiro de 2010
Ultima resposta 11 de fev. de 2010
Respostas 8
Participantes 3