Problema ao inserir na tabela relacionamento N-N

2 respostas
Deluxe

Pessoal
tenho a seguinte situação

Tabela

GRUPO_DISTRIBUICAO
cod_grupo

UF
cod_uf

GRUPO_DISTRIBUICAO_UF
cod_grupo_distribuicao_uf
cod_grupo
cod_uf

Classe GrupoDistribuicao

@ManyToMany(targetEntity=UF.class,cascade={CascadeType.PERSIST, CascadeType.MERGE})  
	@JoinTable(name="GRUPO_DISTRIBUICAO_UF",   
	             joinColumns={@JoinColumn(name="COD_GRUPO_DISTRIBUICAO")},  
	             inverseJoinColumns={@JoinColumn(name="COD_UF")})  
	private Set<UF> uf;

Quando vo inserir

UF uf = (UF)session.get(UF.class, 1L);
				
Set<UF> ufs = new HashSet<UF>();
ufs.add(uf);
				
				
GrupoDistribuicao d = new GrupoDistribuicao();
d.setNomeProduto("Grupo Dist 01");
d.setValorPorte(22);
d.setUf(ufs);

O erro

Caused by: java.sql.BatchUpdateException: ORA-01400: cannot insert NULL into ("GRUPO_DISTRIBUICAO_UF"."COD_GRUPO_DISTRIBUICAO_UF")

Ele nao inserir pq a PK ta nulla
eu tenho uma sequence para essa tabela
onde coloco essa Sequence, sendo que nao tenho a classe dessa tabela GRUPO_DISTRIBUICAO_UF

2 Respostas

criador

Boa tarde.

Provavelmente esta sua Sequence não está inserindo a PK.

Se você fizer o comando insert manualmente, informando a PK, ele insere corretamente ?

Marck

Olá!

Você pode tirar a coluna cod_grupo_distribuicao_uf. No relacionamento N:N ela não tem tanto valor.

Criado 15 de setembro de 2009
Ultima resposta 15 de set. de 2009
Respostas 2
Participantes 3