Mapeamente ManyToMany hibernate!

Cumprimentos a todos e boa tarde!! Pessoa é o seguinte, estou testando alguns exemplos aki sobre hibernate e deparei com a seguinte questao:

Tenho duas classes: EntidadeUm e EntidadeDois representadas no banco pelas tabelas entidadeum e entidadedois respectivamente com relacionamento N:M. Elas estao escrita e mapeadas da seguinte forma:

Class EntidadeUm


@Entity
@Table(name="entidadeum")
public class EntidadeUm {
    
    @Id
    @Column(name="CODIGO")
    private int codigo;
    @Column(name="NOME")
    private String nome;
    @ManyToMany(targetEntity= br.com.bean.EntidadeDois.class,
                cascade={CascadeType.PERSIST, CascadeType.MERGE}
    )
    @JoinTable(
            name="entidadeum_has_entidadedois", // tabela N:M do banco
            joinColumns = @JoinColumn( name="entidadeum_codigo", referencedColumnName="codigo"), //key estrangeira da entidadeUm dentro da tabela N:M
            inverseJoinColumns = @JoinColumn(name="entidadedois_codigo",referencedColumnName="codigo") //key estrangeira da entidadeDois dentro da tabela N:M
    )
    /* Pq o hibernate nao consegue persistir esse conjunto de obj no banco no momento da inserção?*/
    private List<EntidadeDois> vetEntidadeDois;
    public EntidadeUm() {
    }
    // get's e set's
}

Class EntidadeDois

@Entity
@Table(name="entidadedois")
public class EntidadeDois {
    
    /** Creates a new instance of EntidadeDois */
    @Id
    @Column(name="CODIGO")
    private int codigo;
    @Column(name="NOME")
    private String nome;
    @ManyToMany(
        cascade = {CascadeType.PERSIST, CascadeType.MERGE},
        mappedBy = "vetEntidadeDois",  //atributo do obj EntidadeUm mapeado neste obj
        targetEntity = br.com.bean.EntidadeUm.class
    )
    private List<EntidadeUm> vetEntidadeUm;

    public EntidadeDois() {
    }
    //get's e set's
}

Action que cria os obj e persiste no banco

/* Essa action realiza a criaçao dos obj e chama os metodos para inserir/consultar*/
public class TesteAction extends Action {
    
    /* forward name="success" path="" */
    private final static String SUCCESS = "success";
    public ActionForward execute(ActionMapping mapping, ActionForm  form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception 
    {
        String codigo = request.getParameter("txtCodigo");
        if(codigo.equals("1"))
        {
            List<EntidadeDois> list = new ArrayList();
            EntidadeUmDAO entDao = new EntidadeUmDAO();
            EntidadeDois ent1 = new EntidadeDois();
            ent1.setCodigo(1);
            ent1.setNome("um");
            list.add(ent1);
            EntidadeDois ent2 = new EntidadeDois();
            ent2.setCodigo(2);
            ent2.setNome("dois");
            list.add(ent2);
            EntidadeDois ent3 = new EntidadeDois();
            ent3.setCodigo(3);
            ent3.setNome("tres");
            list.add(ent3);
            EntidadeDois ent4 = new EntidadeDois();
            ent4.setCodigo(4);
            ent4.setNome("quatro"); 
            list.add(ent4);
            EntidadeDois ent5 = new EntidadeDois();
            ent5.setCodigo(5);
            ent5.setNome("cinco");
            list.add(ent5);

            EntidadeUm teste = new EntidadeUm();
            teste.setCodigo(1);
            teste.setNome("testando");
            teste.setVetEntidadeDois(list); // seta a lista de obj criados e adicionados no passo anterior.
            /*persiste no banco a EntidadeUm representado pelo obj teste.Neste caso, o hibernate nao persiste 
             a lista de objetos do vetor.Pq isso ocorre??*/
            entDao.salvarEntidadeUm(teste); 
        }
        else
        {
            EntidadeUmDAO entDao = new EntidadeUmDAO();
            entDao.consultarEntidadeUm(1);
        }
        return mapping.findForward(SUCCESS);
        
    }
}

Conforme exposto acima, pq o hibernate nao consegue persistir/gravar o vetEntidadeDois no banco?? Existe alguma algo errado no mapeamento??
A resposta desejada seria que ele povoasse a entidadeum no banco com os dados setados, povoasse a entidadedois com os obj’s que encontram-se no vetEntidadeDois e povoasse a tabela entidadeum_has_entidadedois com as respectivas chaves primarias das tabela entidadeum e entidadedois, criando o mapeamento N:M.

Quem puder ajudar ai agradeço.

valeu