Movimento e venda Prime Faces Jsf Hibernate JPA 2.0

Olá pessoal boa noite?

Estou com o seguinte problema estou realizando um cadastro de venda em JSF com a seguinte entidades

Aqui está o Relacionamento entre animal e venda gerando uma associativa !!

https://lh3.googleusercontent.com/axr1NhiwpF5TS7JKT79YBFusb2rudR5GSOpzr3AX1K-5cZ3279vjd0DiuY8vBwvIk0K9EPrMRhkqXA4=w1280-h904

Aqui é meu Carrinho, criei um array List do tipo animal que addiciono os animais nele !!!
https://lh4.googleusercontent.com/6NyL1NxVdXyTOttbhaGwgq5BdC-k69UtSRX3Y-tbgkSd0F69zyRSTyAC3fevlt99vR71DzjDAy6mfBI=w1280-h904-rw

Apos isso tenho essa tela de finalização de venda nela chamo a lista que carreguei do tipo de animais e exibo para o usuario
https://lh6.googleusercontent.com/y5yPLkfcAZcJ1w9dYVARRdMZQptABfdBQugVyJEcu-grvKUeARwr2QfNU-dporMOi11oGKdNOHFFHCs=w1280-h904-rw

Aqui é meu Managede bean que estou utilizando a notação Session Scopeed para quando add no carrinho nao perder os itens quando navego de uma pagina a outra !!!
Agora o grande problema td a vez que insiro ele só insere o ULTIMO REGISTRO ele percorre a lista td mas quando dao.inserir ele só insere o ultimo Objeto não um a um !!

Alguem sabe oque estou fazendo de errado ?

Na venda estou fazendo td certo está criando td, ja dei um println ele percorre o laço certinho com os objetos um a um mas na hr de inserir só insere o ultimo do array list!!!

Está dando erro 403 nos seus links do Google. PF, Posta o código aqui. ou mostre no Git para ficar mais fácil.
Preciso ver os seus Annotations além dessa parte do print…

nao consigo mandar os codigos tds
/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package controle;

import banco.DAOGenerico;
import entidades.Animal;
import entidades.AnimalVenda;
import entidades.Origem;
import entidades.Raca;
import entidades.Remedios;
import entidades.Tipo;
import entidades.Vacinacao;
import entidades.Venda;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

@ManagedBean
@SessionScoped
public class ControleAnimalVenda {

private Animal objetoAnimal = new Animal();
private DAOGenerico dao = new DAOGenerico();
private List<Animal> lista = new ArrayList<>();
private List<Animal> listaCaminhao = new ArrayList<>();
private AnimalVenda objetoMovimentoVenda = new AnimalVenda();
private List<AnimalVenda> listaVenda = new ArrayList<>();
private Venda objetoVenda = new Venda();
private List<AnimalVenda> listaV = new ArrayList<>();

public ControleAnimalVenda(){
    preencher();
}

public void novo() {
    objetoAnimal = new Animal();
}
public void excluir(Animal tipo){
    objetoAnimal = tipo;
    if(tipo.getId()!=null){
        try {
            dao.exluir(tipo);
        } catch (Exception ex) {
            Logger.getLogger(ControleAnimalVenda.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    novo();
    preencher();
}
public void inserir() throws IOException{
	if (objetoAnimal.getId() != null ) {
    		dao.salvar(objetoAnimal);
    } 
    preencher();
    novo();
}
public void removerIten(){
	listaCaminhao.remove(objetoAnimal);
}
public void adiconarAoCaminhao() throws IOException{
	if (objetoAnimal.getId() != null ) {
		dao.salvar(objetoAnimal);
	} 
	
	FacesContext faces = FacesContext.getCurrentInstance();
    System.out.println("ENTROU NO 2 IF");
	listaCaminhao.add(objetoAnimal);		
				faces.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO,"","Adicionado ao Caminhão!!!!"));						
				for (int i = 0; i < listaCaminhao.size(); i++) {
					Object a = listaCaminhao.get(i);
					for (int j = i+1; j < listaCaminhao.size(); j++) {
						Object b = listaCaminhao.get(j);
						if (a.equals(b)) {
							listaCaminhao.remove(j);
							j--;
						}
					}
				}
				preencher();
		    	novo();
} 
public void inserirMovimentoVenda(){
	
	double somaAnimalPreco=0 ;
	//Laço para percorrer a lista e efetuar a soma do valor total da venda
	
	for (Animal animal : listaCaminhao) {
		
		somaAnimalPreco +=animal.getValorVenda();
		
		System.out.println("For 118 valor variavel=" +somaAnimalPreco+"valor campo banco "+animal.getValorVenda());
    	
	}
	//aqui é efetuado a insersão na tabela venda
	if(objetoVenda.getId()==null){
		System.out.println("if Venda ");
		objetoVenda.setDataVenda(new Date());
    	objetoVenda.setQuantidadeTotal(listaCaminhao.size());
    	objetoVenda.setValorTotal(somaAnimalPreco);
    	
    	dao.inserir(objetoVenda);
    		
	}
	//laço for que percore a lista de objetos e insere no banco cada item 
   	for (Animal animal : listaCaminhao) {
   			System.out.println("if Movimento ");
   			objetoMovimentoVenda.setValorTotal(animal.getValorVenda());
   			objetoMovimentoVenda.setObjetoAnimal(animal);
			objetoMovimentoVenda.setObjetoVenda(objetoVenda);
	    	listaV.add(objetoMovimentoVenda);
		//	dao.inserir(objetoMovimentoVenda);
	    	System.out.println("For 118 ");	
     	}
   	
   	for (AnimalVenda animal : listaV) {
		
   		animal.setObjetoAnimal(animal.getObjetoAnimal());
   		animal.setObjetoVenda(animal.getObjetoVenda());
   		animal.setValorTotal(animal.getObjetoAnimal().getValorVenda());
    	System.out.println(animal.getObjetoAnimal().getNomeAnimal()+"-"+animal.getObjetoVenda().getValorTotal()+"-");
		dao.inserir(animal);
    	System.out.println("For 138 ");	
	}
   	listaCaminhao.clear();	
}


public List<AnimalVenda> getListaV() {
	return listaV;
}

public void setListaV(List<AnimalVenda> listaV) {
	this.listaV = listaV;
}

public List<Animal> getListaCaminhao() {
	return listaCaminhao;
}

public void setListaCaminhao(List<Animal> listaCaminhao) {
	this.listaCaminhao = listaCaminhao;
}

private void preencher() {

    lista = dao.lista(Animal.class);
}
public Animal getObjetoAnimal() {
    return objetoAnimal;
}

public void setObjetoAnimal(Animal objetoAnimal) {
    this.objetoAnimal = objetoAnimal;
}

public List<Animal> getLista() {
    return lista;
}

public void setLista(List<Animal> lista) {
    this.lista = lista;
}

public AnimalVenda getObjetoMovimentoVenda() {
	return objetoMovimentoVenda;
}

public void setObjetoMovimentoVenda(AnimalVenda objetoMovimentoVenda) {
	this.objetoMovimentoVenda = objetoMovimentoVenda;
}

public List<AnimalVenda> getListaVenda() {
	return listaVenda;
}

public void setListaVenda(List<AnimalVenda> listaVenda) {
	this.listaVenda = listaVenda;
}

public Venda getObjetoVenda() {
	return objetoVenda;
}

public void setObjetoVenda(Venda objetoVenda) {
	this.objetoVenda = objetoVenda;
}

}

o metodo é o inserirmovimento o que ta dando problema

jan 23, 2017 7:31:56 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.6.Final}
jan 23, 2017 7:31:56 PM org.hibernate.cfg.Environment
INFO: HHH000206: hibernate.properties not found
jan 23, 2017 7:31:56 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
jan 23, 2017 7:31:57 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager
INFO: HCANN000001: Hibernate Commons Annotations {4.0.5.Final}
jan 23, 2017 7:31:57 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
WARN: HHH000402: Using Hibernate built-in connection pool (not for production use!)
jan 23, 2017 7:31:57 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost:3306/projetoleite]
jan 23, 2017 7:31:57 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000046: Connection properties: {user=root}
jan 23, 2017 7:31:57 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl buildCreator
INFO: HHH000006: Autocommit mode: false
jan 23, 2017 7:31:57 PM org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20 (min=1)
jan 23, 2017 7:31:58 PM org.hibernate.dialect.Dialect
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
jan 23, 2017 7:31:58 PM org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreation
INFO: HHH000423: Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 4
jan 23, 2017 7:31:58 PM org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory
INFO: HHH000397: Using ASTQueryTranslatorFactory
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000228: Running hbm2ddl schema update
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000102: Fetching database metadata
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000396: Updating schema
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: projetoleite.animal
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [nomeanimal, objetotipo_id, lactando, valorcompra, objetoorigem_id, valorvenda, datacompra, objetoraca_id, desmamado, idade, brinco, dtnascimento, id, sexo, dtdesmame]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000108: Foreign keys: [fk_7g3dtk4gmiyggm2frbm07m7d8, fk_jyf9xev8c21d9xxuag5b5dgpj, fk_dhx0vhetob49lxtfns3t33ift]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000126: Indexes: [fk_7g3dtk4gmiyggm2frbm07m7d8, fk_jyf9xev8c21d9xxuag5b5dgpj, fk_dhx0vhetob49lxtfns3t33ift, primary]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: projetoleite.animalproducao
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [objetoleite_id, objetoanimal_id, objetoproducao_id, valortotal, id, meioobtencaoquantidade, quantidadetotal]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000108: Foreign keys: [fk_s60jl5x40t1l82v2mcdwhysv2, fk_9p33l15tmvh3yuch8b673bmt2, fk_gyeb95x369ko2uwe2uythadtq]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000126: Indexes: [fk_s60jl5x40t1l82v2mcdwhysv2, fk_9p33l15tmvh3yuch8b673bmt2, fk_gyeb95x369ko2uwe2uythadtq, primary]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: projetoleite.animalvenda
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [objetoanimal_id, objetovenda_id, valortotal, id, quantidade]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000108: Foreign keys: [fk_rvuw4mpcg02yl0x936fq6qle, fk_cxuee6yj2y8nc85j43eu97cv9]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000126: Indexes: [fk_rvuw4mpcg02yl0x936fq6qle, fk_cxuee6yj2y8nc85j43eu97cv9, primary]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: projetoleite.leite
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [valorlitro, id, datadovalor]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000108: Foreign keys: []
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000126: Indexes: [primary]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: projetoleite.origem
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [id, local]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000108: Foreign keys: []
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000126: Indexes: [primary]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: projetoleite.pessoa
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [senha, telefone, nome, id, email]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000108: Foreign keys: []
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000126: Indexes: [primary]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: projetoleite.producao
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [objetoleite_id, dataordenha, valortotalprodiaria, valorlitroleite, id, quantidadelitros, objetopessoa_id]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000108: Foreign keys: [fk_h3veuk389p3prfme1jyem6urs, fk_daqv4wsycqqk3nnqcxlbj3mws]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000126: Indexes: [fk_h3veuk389p3prfme1jyem6urs, fk_daqv4wsycqqk3nnqcxlbj3mws, primary]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: projetoleite.raca
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [nomedaraca, id]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000108: Foreign keys: []
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000126: Indexes: [primary]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: projetoleite.remedios
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [limiteidade, valor, datacompra, id, nomevacina]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000108: Foreign keys: []
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000126: Indexes: [primary]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: projetoleite.tipo
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [id, animaltipo]
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000108: Foreign keys: []
jan 23, 2017 7:31:59 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000126: Indexes: [primary]
jan 23, 2017 7:32:00 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: projetoleite.vacinacao
jan 23, 2017 7:32:00 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [datavacinacao, objetoremedio_id, objetoanimal_id, id]
jan 23, 2017 7:32:00 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000108: Foreign keys: [fk_kee62rrqw7hrxdyiyxybwskp, fk_qoov64ux9ywu1gcyfxjeo3a7l]
jan 23, 2017 7:32:00 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000126: Indexes: [fk_kee62rrqw7hrxdyiyxybwskp, fk_qoov64ux9ywu1gcyfxjeo3a7l, primary]
jan 23, 2017 7:32:00 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: projetoleite.venda
jan 23, 2017 7:32:00 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [datavenda, valortotal, id, quantidadetotal]
jan 23, 2017 7:32:00 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000108: Foreign keys: []
jan 23, 2017 7:32:00 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000126: Indexes: [primary]
jan 23, 2017 7:32:00 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000261: Table found: projetoleite.teste
jan 23, 2017 7:32:00 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000037: Columns: [nome, id]
jan 23, 2017 7:32:00 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000108: Foreign keys: []
jan 23, 2017 7:32:00 PM org.hibernate.tool.hbm2ddl.TableMetadata
INFO: HHH000126: Indexes: [primary]
jan 23, 2017 7:32:00 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000232: Schema update complete
Entrou
ENTROU NO 2 IF
ENTROU NO 2 IF
For 118 valor variavel=1455.0valor campo banco 1455.0
For 118 valor variavel=2799.0valor campo banco 1344.0
if Venda
if Movimento
For 118
if Movimento
For 118
Mimosa-2799.0-
For 138
Mimosa-2799.0-
For 138

Man, Olhando por cima estou me afogando nos teus loops ai,
Tu sabe utilizar o debugger do eclipse?
Aqui explica:
https://www.caelum.com.br/apostila-java-orientacao-objetos/apendice-debugging/#22-4-debug-avancado

Tenta colocar os break points nesses loops , veja linha a linha e suas variáveis executando.

Chutei nas annotations mas pelo visto Tudo ok ali.

Sem o resto das Classes , de longe por enquanto , só consigo te ajudar com isso.

Outra coisa e se você descomentar esse trecho:

	//laço for que percore a lista de objetos e insere no banco cada item 
   	for (Animal animal : listaCaminhao) {
   			System.out.println("if Movimento ");
   			objetoMovimentoVenda.setValorTotal(animal.getValorVenda());
   			objetoMovimentoVenda.setObjetoAnimal(animal);
			objetoMovimentoVenda.setObjetoVenda(objetoVenda);
	    	listaV.add(objetoMovimentoVenda);
		//	dao.inserir(objetoMovimentoVenda);
	    	System.out.println("For 118 ");	
     	}

linha comentada no dao.inserir ?!?

Bom dia obrigado pela ajuda resolvi o problema, estava fazendo uma inserção em cima utilizando a entidade venda, e no mesmo metodo outra inserção utilizando a entidade associativa ou seja estava dando erro no Hibernate, oque fiz
criei um metodo fazendo o processo de inserção da venda, e outro de inserção do movimento, dai resolveu vou posta o codigo aqui

	public void finalizar(){
   		
   	//laço for que percore a lista de objetos e insere no banco cada item 
       	for (Animal animal : listaCaminhao) {
       			
       			System.out.println("if Movimento ");
       			objetoMovimentoVenda = new AnimalVenda();
       			
       			objetoMovimentoVenda.setValorTotal(animal.getValorVenda());
       			objetoMovimentoVenda.setObjetoAnimal(animal);
				objetoMovimentoVenda.setObjetoVenda(objetoVenda);
		    	listaV.add(objetoMovimentoVenda);
			//	dao.inserir(objetoMovimentoVenda);
		    	System.out.println("For 118 ");	
       	}
       	
   		double somaAnimalPreco=0 ;
    	//Laço para percorrer a lista e efetuar a soma do valor total da venda
    	
    	for (Animal animal : listaCaminhao) {
    		
    		somaAnimalPreco +=animal.getValorVenda();
    		
    		System.out.println("For 118 valor variavel=" +somaAnimalPreco+"valor campo banco "+animal.getValorVenda());
        	
    	}
    	//aqui é efetuado a insersão na tabela venda
    	if(objetoVenda.getId()==null){
    		System.out.println("if Venda ");
    		objetoVenda.setDataVenda(new Date());
        	objetoVenda.setQuantidadeTotal(listaCaminhao.size());
        	objetoVenda.setValorTotal(somaAnimalPreco);
        	
        	dao.inserir(objetoVenda);
        		
    	}
   	for (AnimalVenda animal : listaV) {
		
   		
    	animal.setObjetoVenda(objetoVenda);
    	
		dao.inserir(animal);
    	System.out.println("For 138 ");	
	
	
   
}
   	objetoVenda = new Venda();
   	listaV = new ArrayList<AnimalVenda>();
   	listaCaminhao.clear();
	
	
}

fiz essas alterações poderia comparar o codigo e ver oque de errado estava fazendo antes ?

1 curtida

Blz , que bom, vou tentar comparar,

Man,
Estou debugando com os olhos .

Repare neste trecho antigo:

//laço for que percore a lista de objetos e insere no banco cada item 
   	for (Animal animal : listaCaminhao) {
   			System.out.println("if Movimento ");
   			objetoMovimentoVenda.setValorTotal(animal.getValorVenda());
   			objetoMovimentoVenda.setObjetoAnimal(animal);
			objetoMovimentoVenda.setObjetoVenda(objetoVenda);
	    	listaV.add(objetoMovimentoVenda);
		//	dao.inserir(objetoMovimentoVenda);
	    	System.out.println("For 118 ");	
     	}

E o novo:

//laço for que percore a lista de objetos e insere no banco cada item 
for (Animal animal : listaCaminhao) {

System.out.println("if Movimento ");
objetoMovimentoVenda = new AnimalVenda(); // Repare nesta Linha Aqui

objetoMovimentoVenda.setValorTotal(animal.getValorVenda());
objetoMovimentoVenda.setObjetoAnimal(animal);
objetoMovimentoVenda.setObjetoVenda(objetoVenda);
listaV.add(objetoMovimentoVenda);
//	dao.inserir(objetoMovimentoVenda);
System.out.println("For 118 ");	
}

No código antigo você declarou e instanciou ele lá em cima :

private Animal objetoAnimal = new Animal();
private DAOGenerico dao = new DAOGenerico();
private List<Animal> lista = new ArrayList<>();
private List<Animal> listaCaminhao = new ArrayList<>();
private AnimalVenda objetoMovimentoVenda = new AnimalVenda(); // Aqui Nesta linha
private List<AnimalVenda> listaVenda = new ArrayList<>();
private Venda objetoVenda = new Venda();
private List<AnimalVenda> listaV = new ArrayList<>();

eu Subentendi que,
o seu laço estava correto, porém você só esqueceu de declarar a nova instancia dessa variável objetoMovimentoVenda,
fazendo que a primeira iteração deste loop chega-se ao exito - persistindo esse objeto no banco de dados. E as demais operações apenas atualizando os valores deste objeto, por fim valendo apenas o valor da ultima iteração.

Eu não vi o seu Dao :
esta linha faz o que ? dao.inserir(objetoMovimentoVenda); ? Persist ou Merge?

cara que coisa hem !!! era apenas um erro de logica mesmo que passou despercebido por min,
e realmente agora faz sentido mesmo!!![quote=“Frmichetti, post:7, topic:342160”]
esta linha faz o que ? dao.inserir(objetoMovimentoVenda); ? Persist ou Merge?
[/quote]

Entao eu uso no INSERIR do meu DAO o persist, e o merger uso como SALVAR !!!
mas agora que caiu a ficha mesmo o problema era aquele do New ObjetoMovimentoVenda !!!
obrigado pela ajuda mesmo !!!

1 curtida

Entendido, Blz Bro. Valeu . Boa Sorte Ai.
T+