Hum…Este erro pode estar ocorrendo pq vc está persistindo a entidade Boleto com um relacionamento Agenda que nao é gerenciavel(pelo
fato de vc estar utilizando o mappedBy=boleto)…
EU estava com o mesmo problema a um tempo atraz… da uma olhada no que eu fiz.
ANTES (cod. botao)
[code]
daoVenda.salvarVenda(venda);//
int linhas = dtmitens.getRowCount();
VendaProduto vendaProduto = new VendaProduto();//
for (int i = 0; i < linhas; i++) {
int codigoProduto = Integer.parseInt(String.valueOf(dtmitens.getValueAt(i,0)));
Produto produto = daoProduto.buscaPorCodigo(codigoProduto);
vendaProduto.setProduto(produto);
vendaProduto.setPrecoTotal(Float.parseFloat(String.valueOf(dtmitens.getValueAt(i,5))));
vendaProduto.setPrecoUnitario(Float.parseFloat(String.valueOf(dtmitens.getValueAt(i,4))));
vendaProduto.setQuantidade(Integer.parseInt(String.valueOf(dtmitens.getValueAt(i,2))));
vendaProduto.setVenda(venda);
daoVendaProduto.salvarVendaProduto(vendaProduto);//
}
[/code]
DEPOIS Metodo
public void addVendaProduto(VendaProduto vendaProduto){   
        if(this.vendaProdutoCollection == null){   
            this.vendaProdutoCollection = new ArrayList<VendaProduto>();   
        }   
        this.vendaProdutoCollection.add(vendaProduto);   
    }  
public void addVendaProduto(VendaProduto vendaProduto){
        if(this.vendaProdutoCollection == null){
            this.vendaProdutoCollection = new ArrayList<VendaProduto>();
        }
        this.vendaProdutoCollection.add(vendaProduto);
    }
e o Cod.Botao
int linhas = dtmitens.getRowCount();   
        for (int i = 0; i < linhas; i++) {   
            VendaProduto vendaProduto = new VendaProduto();//motivo do problema... ¬¬   
            int codigoProduto = Integer.parseInt(String.valueOf(dtmitens.getValueAt(i,0)));   
            Produto produto = daoProduto.buscaPorCodigo(codigoProduto);   
            vendaProduto.setProduto(produto);   
            vendaProduto.setPrecoTotal(Float.parseFloat(String.valueOf(dtmitens.getValueAt(i,5))));   
            vendaProduto.setPrecoUnitario(Float.parseFloat(String.valueOf(dtmitens.getValueAt(i,4))));   
            vendaProduto.setQuantidade(Integer.parseInt(String.valueOf(dtmitens.getValueAt(i,2))));   
            vendaProduto.setVenda(venda);   
            venda.addVendaProduto(vendaProduto);//   
        }   
        daoVenda.salvarVenda(venda);//  Talvez ajude
vlw
Tenho um relacionamento One-to-One bidirecional entra a tabela A e B.
A tabela B ja contem campos existentes agora eu gostaria de inserir dados na tabela A e atualizar uma tupla da tabela B. Tem que colocar algo
        Classe A
        
        @OneToOne(cascade = CascadeType.ALL , fetch = FetchType.LAZY, mappedBy = "boleto")
	@JoinColumn(name="id")
	private Agencia agencia ;
	
	
        Classe B
        @OneToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="id_boleto")
	private Boleto boleto ;
	Agencia agencia = service_.findAgencia("aqui eu passo o id"); // retorna o objeto ja carregado no banco
					
	Boleto boleto = new Boleto();
						
        boleto.setInst1( txtInst1.getText() );
        boleto.setInst2( txtInst2.getText() );
	boleto.setInst3( txtInst3.getText() );
	boleto.setDiaVencimento( Integer.parseInt( txtDtVencimento.getText() ) );
	boleto.setLocalPagamento( txtLocalPagamento.getText() );
	boleto.setLocalPagamento2( txtPagVencimento.getText() );
	boleto.setValorBoleto( txtValor.getText() );
						
	boleto.setAgencia(agencia);
											
	agencia.setBoleto(boleto);
        service.salvar(boleto); // inserir o objeto boleto e fazer atualizacao da chave estrangeira(id_boleto) que esta no objeto agencia referenciando o id da tabela boleto 
Esta dando um erro “detached entity passed to persist”.  
Agradeço a quem ajudar