Não Salva a partir do segundo

Bom Dia a todos…
Esse código abaixo está salvando os dois modelos mas não salva o 2 Many-To-Many do 2 Modelo…
Alguem por favor me ajuda!

[code]
int doAno = 1960,ateAno = 9999;

					if(chkDoAno.isSelected()){
						if(cmbDoAno.isValid()){
							doAno = cmbDoAno.getValue();
						}
					}
					
					if(chkAteANo.isSelected()){
						if(cmbAteAno.isValid()){
							ateAno = cmbAteAno.getValue();
						}
					}
					
					Marca marca = (Marca) model.getSelectedItem();
					
					Motor motor = (Motor) modelMotor.getSelectedItem();
					
					Modelo modelo = new Modelo();
					
					modelo.setMarca(marca);
					modelo.setOleo(Double.parseDouble( getSpinOleo().getValue().toString()));
					modelo.setNome(getTxtNome().getText());
					modelo.setPartirAno(doAno);
					modelo.setAteAno(ateAno);
					modelo.setArCondicionado(getChkArCondicionadoNovo().isSelected());
					modelo.setDirecaoHidraulica(getChkDirecaoHidraulicaNovo().isSelected());
					modelo.setCilindradas(getCmbCilindradas().getSelectedItem().toString());
					modelo.setValvulas(getCmbValvula().getSelectedItem().toString());
					modelo.setMotor(motor);
					int cod = daoModelo.adicionaPegaNumero(modelo);
					modelo = daoModelo.procura(cod);
					
					for (int i = 0; i < getModelDificuldade().getSize(); i ++) {
						ModeloCategoria modelocategoria = (ModeloCategoria) getModelDificuldade().get(i);
						ModeloCategoriaPK pk =modelocategoria.getChaveComposta();
						pk.setModelo(modelo);
						modelocategoria.setChaveComposta(pk);
						daoModeloCategoria.adiciona(modelocategoria);
						System.out.println(modelocategoria.getChaveComposta().getModelo().getCod());
					}
					
					modelo = new Modelo();
					
					modelo.setMarca(marca);
					modelo.setOleo(Double.parseDouble( getSpinOleo().getValue().toString()));
					modelo.setNome(getTxtNome().getText());
					modelo.setPartirAno(doAno);
					modelo.setAteAno(ateAno);
					modelo.setArCondicionado(getChkArCondicionadoNovo().isSelected());
					modelo.setDirecaoHidraulica(getChkDirecaoHidraulicaNovo().isSelected());
					modelo.setCilindradas(getCmbCilindradas().getSelectedItem().toString());
					modelo.setValvulas(getCmbValvula().getSelectedItem().toString());
					modelo.setMotor(motor);
					int cod2 = daoModelo.adicionaPegaNumero(modelo);
					modelo = daoModelo.procura(cod2);
					System.out.println(modelo.getCod());
					for (int i = 0; i < getModelDificuldade().getSize(); i ++) {
						ModeloCategoria dificuldade = (ModeloCategoria) getModelDificuldade().get(i);
						ModeloCategoriaPK pk =dificuldade.getChaveComposta();
						pk.setModelo(modelo);
						dificuldade.setChaveComposta(pk);
						daoModeloCategoria.adiciona(dificuldade);
						System.out.println(dificuldade.getChaveComposta().getModelo().getCod());
					}[/code]

Ninguem??