composite_Id - tabela associativa

Olá galera, boa noite…

Estou com uma grande dúvida, tenho duas tabelas, uma de Fornecedor e outra de produtos que gera uma tabela associativa Estoque. Sendo que quando vou cadastrar os produtos no estoque quero somente as FKs das tabelas ou seja id_Produto e cnpj, quando pego o composite_Id(objeto) ele pega todos os campos das tabelas. Quero somente as chaves. Resumindo quero cadastrar um produto em estoque pegando apenas os seus ids do produto e fonnecedor.

Segue exemplo do que está sendo feito.

package br.com.sgsb.controller;

import br.com.sgsb.model.bean.EstoqueNovo;
import br.com.sgsb.model.bean.Fornecedor;
import br.com.sgsb.model.bean.Produto;
import br.com.sgsb.model.bean.Servico;
import br.com.sgsb.model.bean.Usuario;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.sgsb.model.dao.HibernateDAO;
import br.com.sgsb.util.FormatandoDatas;
import br.com.sgsb.util.HibernateUtil;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpSession;
import org.hibernate.Session;

/**

  • Servlet implementation class for Servlet: HibernateTester

*/
public class EstoqueNovoServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {

static final long serialVersionUID = 1L;

/* (non-Java-doc)
 * @see javax.servlet.http.HttpServlet#HttpServlet()
 * /**
 * id_Usuario` int(10) unsigned NOT NULL auto_increment,
`nome` varchar(60) NOT NULL default '',
`cpf` int(10) unsigned default NULL,
`rg` int(10) unsigned default NULL,
`tel_Res` int(10) unsigned NOT NULL default '0',
`tel_Cel` int(10) unsigned default NULL,
`est_Civil` varchar(15) NOT NULL default '',
`email` varchar(45) default NULL,
`dt_Nasc` date NOT NULL default '0000-00-00',
`sexo` varchar(1) NOT NULL default '',
`senha` varchar(10) NOT NULL default '',
`id_Endereco` int(10) unsigned NOT NULL default '0',
`id_Perfil` int(10) unsigned NOT NULL default '0',
 * @author Thiago
 */
@Override
protected void service(HttpServletRequest request,
        HttpServletResponse response)
        throws ServletException, IOException {
    String cmd = request.getParameter("cmd");

    HttpSession sessao = request.getSession();

    if (cmd == null) {
        cmd = "principal";
    }
    EstoqueNovo etqNovo = new EstoqueNovo();
    Usuario usr = new Usuario();
    EstoqueNovo compositeId = new EstoqueNovo();
    Fornecedor forn = new Fornecedor();
    Produto prod = new Produto();
    FormatandoDatas data = new FormatandoDatas();
    String msg = null;
    if (cmd != null || !cmd.equalsIgnoreCase("principal")) {

        if (request.getParameter("id_Produto") != null) {
            prod.setId_Produto(Integer.parseInt(request.getParameter("id_Produto")));
        }

        if (request.getParameter("nome") != null) {
            prod.setNome(request.getParameter("nome"));
        }

        if (request.getParameter("descricao") != null) {
            prod.setDescricao(request.getParameter("descricao"));
        }


        //atributos de Fornecedor

        if (request.getParameter("cnpj") != null) {
            forn.setCnpj(Double.parseDouble(request.getParameter("cnpj")));
        }

        if (request.getParameter("razao_Social") != null) {
            forn.setRazao_Social(request.getParameter("razao_Social"));
        }

        if (request.getParameter("nome_Fant") != null) {
            forn.setNome_Fant(request.getParameter("nome_Fant"));
        }

        if (request.getParameter("insc_Est") != null) {
            forn.setInsc_Est(request.getParameter("insc_Est"));
        }

        if (request.getParameter("nome_Contato") != null) {
            forn.setNome_Contato(request.getParameter("nome_Contato"));
        }

        if (request.getParameter("tel") != null) {
            forn.setTel(Integer.parseInt(request.getParameter("tel")));
        }

        if (request.getParameter("email") != null) {
            forn.setEmail(request.getParameter("email"));
        }

        //Atributos de EstoqueNovo

        if (request.getParameter("id_EstoqueNovo") != null) {
            etqNovo.setId_EstoqueNovo(Integer.parseInt(request.getParameter("id_EstoqueNovo")));
        }

        if (request.getParameter("qtd_Saida") != null) {
            etqNovo.setQtd_Saida(Integer.parseInt(request.getParameter("qtd_Saida")));
        }

        if (request.getParameter("qtd_Entrada") != null) {
            etqNovo.setQtd_Entrada(Integer.parseInt(request.getParameter("qtd_Entrada")));
        }

        if (request.getParameter("nf") != null) {
            etqNovo.setNf(request.getParameter("nf"));
        }

        if (request.getParameter("dt_Entrada") != null) {
            etqNovo.setDt_Entrada(request.getParameter("dt_Entrada"));
        }

        if (request.getParameter("valor_Compra") != null) {
            etqNovo.setValor_Compra(Double.parseDouble(request.getParameter("valor_Compra")));
        }

        if (request.getParameter("valor_Venda") != null) {
            etqNovo.setValor_Venda(Double.parseDouble(request.getParameter("valor_Venda")));
        }

        if (request.getParameter("dt_Saida") != null) {
            etqNovo.setDt_Saida(request.getParameter("dt_Saida"));
        }

        if (request.getParameter("dt_Validade") != null) {
            etqNovo.setDt_Validade(request.getParameter("dt_Validade"));
        }

        if (request.getParameter("dt_Fabricacao") != null) {
            etqNovo.setDt_Fabricacao(request.getParameter("dt_Fabricacao"));
        }

        // Objeto CompositeId da associativa Produto_Fornecedor  


        compositeId.setFornecedor(forn);
        compositeId.setProduto(prod);




        try {
            Session session = HibernateUtil.getSessionFactory().openSession();
            session.beginTransaction();
            HibernateDAO<Produto> produtoDAO = new HibernateDAO<Produto>(Produto.class, session);
            HibernateDAO<Fornecedor> fornecedorDAO = new HibernateDAO<Fornecedor>(Fornecedor.class, session);
            HibernateDAO<Usuario> usuarioDAO = new HibernateDAO<Usuario>(Usuario.class, session);
            HibernateDAO<Servico> servicoDAO = new HibernateDAO<Servico>(Servico.class, session);
            HibernateDAO<EstoqueNovo> etqNovoDAO = new HibernateDAO<EstoqueNovo>(EstoqueNovo.class, session);
            RequestDispatcher rd = null;

            if (cmd.equalsIgnoreCase("listar")) {

                List usuariosList = usuarioDAO.getBeans();
                request.setAttribute("usuariosList", usuariosList);
                rd = request.getRequestDispatcher("/administracao/mostrarUsuarios.jsp");

            } else if (cmd.equalsIgnoreCase("carregaCombo")) {
                List produtoList = produtoDAO.getBeans();

                if (produtoList != null) {
                    sessao.setAttribute("produtoList", produtoList);

                    List fornecedorList = fornecedorDAO.getBeans();
                    if (fornecedorList != null) {
                        sessao.setAttribute("fornecedorList", fornecedorList);
                        rd = request.getRequestDispatcher("/estoqueNovo/cad_Estoque.jsp");

                    }
                }
            } else if (cmd.equalsIgnoreCase("associativa_fornecedor_produto")) {
               
                                    
                etqNovoDAO.salvar(compositeId);
                etqNovoDAO.salvar(etqNovo);
                sessao.setAttribute("compositeId", compositeId);
                rd = request.getRequestDispatcher("teste.jsp");
            }



            /*       }
             * else if (cmd.equalsIgnoreCase("procurarUsrMat")) {
            usr = usuarioDAO.getBean(usr.getMat());
            sessao.setAttribute("usr", usr);
            List CategoriasList = categoriaDAO.getBeans();
            if (CategoriasList != null) {
            sessao.setAttribute("CategoriasList", CategoriasList);
            rd = request.getRequestDispatcher("/administracao/geracao_pedido.jsp");
            }
            
            } else if (cmd.equalsIgnoreCase("carregaComboSites")) {
            List SitesList = sitesDAO.getBeans();
            if (SitesList != null) {
            sessao.setAttribute("SitesList", SitesList);
            rd = request.getRequestDispatcher("HibernateTester?cmd=carregaComboEstacao");
            }
            } else if (cmd.equalsIgnoreCase("carregaComboEstacao")) {
            List listaEstacao = estacaoDAO.getBeans();
            if (listaEstacao != null) {
            sessao.setAttribute("listaEstacao", listaEstacao);
            rd = request.getRequestDispatcher("/administracao/formInserindoDados.jsp");
            }
            } else if (cmd.equalsIgnoreCase("carregarComboTecnico")) {
            List usuariosList = (List) usuarioDAO.getList(usr.getMat());
            if (usuariosList != null) {
            sessao.setAttribute("usuariosList", usuariosList);
            rd = request.getRequestDispatcher("formAlocarTecnico.jsp");
            
            }
            } else if (cmd.equalsIgnoreCase("addusr")) {
            usuarioDAO.salvar(usr);
            rd = request.getRequestDispatcher("HibernateTester?cmd=listar");
            
            } else if (cmd.equalsIgnoreCase("atu")) {
            usuarioDAO.atualizar(usr);
            sessao.setAttribute("usr", usr);
            rd = request.getRequestDispatcher("HibernateTester?cmd=listar");
            
            } else if (cmd.equalsIgnoreCase("listar")) {
            usuarioDAO.atualizar(usr);
            sessao.setAttribute("usr", usr);
            rd = request.getRequestDispatcher("HibernateTester?cmd=listar");
            
            } else if (cmd.equalsIgnoreCase("exc")) {
            usuarioDAO.excluir(usr);
            sessao.setAttribute("usr", usr);
            rd = request.getRequestDispatcher("HibernateTester?cmd=listar");
            
            } else if (cmd.equalsIgnoreCase("consultaUsrRegiao")) {
            
            reg = sitesDAO.getBean(reg.getId_regiao());//carrege todos os sites por regiao
            // List<Funcionario> usuarios = reg.getUsuarios();
            //usuarios = (List<Funcionario>) usuarioDAO.getBean(usr.getNome());
            //for (Funcionario usuario : usuarios) {
            
            // request.setAttribute("usuarios", usuarios);
            
            
            rd = request.getRequestDispatcher("/administracao/mostrarUsuarios.jsp");
            // System.out.println("Nome:" + reg.getUsuarios());
            
             */


            session.getTransaction().commit();
            rd.forward(request, response);
        } catch (Exception e) {
            e.printStackTrace();

            throw new ServletException(e);

        }
    }
}

}

Agradeço desde já a atenção