Gravar Collection com V|Raptor não esta funcionando

Galera, sei que tem como gravar uma coleção de dados dependente de outra tabela, porem não estou conseguindo, ele grava apenas a tabela principal

Tenho uma classe Empresa com um atributo do tipo Collection:

public class Empresa extends AbstractEntity {
    // campos
    ...
    @OneToMany(mappedBy = "idEmpresa")
    private Collection<Telefone> telefones;

Classe Telefone esta mapeada desta forma:

    @JoinColumn(name = "id_empresa", referencedColumnName = "id")
    @ManyToOne
    private Empresa idEmpresa;

No Controller nem no DAO acredito que não deva mudar nada, pois a intenção é alimentar a lista e no save ele se virar para gravar

Alimentei a lista desta forma:

<div class="tab-pane fade" id="tab_telefone">
                    <div class="control-group">
                        <div class="controls">
                            <a href="#" class="btn btn-success" onclick="adicionar();"> <fmt:message key="app.adicionar"/> </a>
                            <hr />
                        </div>

                        <c:forEach items="${entity.telefones}" var="telefone" varStatus="status">
                            <div class="telefone">
                                <label for="telefone"> <fmt:message key="telefone.tipo"/> / <fmt:message key="telefone.telefone"/></label>

                                <select name="entity.telefones[${status.index}].tipo" id="tipo" style="margin-right: 10px;">
                                    <c:forEach items="${telefoneTypes}" var="tipo">
                                        <c:set var="sel" value="${telefone.tipo eq tipo ? 'selected':''}"></c:set>
                                        <option value="${telefone.tipo}"${sel}>${tipo.label}</option>
                                    </c:forEach>
                                </select>

                                <input type="text" placeholder="" id="telefone" data-mask="(99) 9999-9999" name="entity.telefones[${status.index}].telefone" value="${telefone.telefone}" class="input-large">

                                <input type="hidden" name="entity.telefones[${status.index}].id" value="${telefone.id}" />

                                <a id="remover" class="btn btn-link" onclick="remover(this);"> <fmt:message key="app.excluir"/> </a>
                            </div>
                        </c:forEach>
                    </div>
                </div>

jQuery para acrescentar os fields dinamico e trocar indices:

 <script>
                                var model =
                                        '<div class="telefone">' +
                                        '<label for="telefone"> <fmt:message key="telefone.tipo"/> / <fmt:message key="telefone.telefone"/></label>' +
                                        '<select name = "entity.telefones[0].tipo" id="tipo" style = "margin-right: 10px;" >' +
                                        '<c:forEach items="${telefoneTypes}" var="tipo">' +
                                        '<c:set var="sel" value="${telefone.tipo eq tipo ? 'selected':''}"></c:set>' +
                                        '<option value = "${telefone.tipo}"${sel} >${tipo.label} </option>' +
                                        '</c:forEach>' +
                                        '</select>' +
                                        '<input type="text" id="telefone" data-mask="(99) 9999-9999" name="entity.telefones[0].telefone" class="input-large">' +
                                        '<a id="remover" class="btn btn-link" onclick="remover(this);"> <fmt:message key="app.excluir"/> </a>' +
                                        '</div>';


                                function remover(element) {
                                    $(element).parent().remove();
                                    reorderIndexes();
                                }
                                ;

                                function adicionar() {
                                    $('#tab_telefone').append(model);
                                    reorderIndexes();
                                }
                                ;

                                function reorderIndexes() {
                                    var regex = /\[[0-9]\]/g;

                                    $('.telefone').each(function(index) {
                                        var $campos = $(this).find('input'),
                                                $input,
                                                name;

                                        $campos.each(function() {
                                            $input = $(this),
                                                    name = $input.attr('name');

                                            $input.attr('name', name.replace(regex, '[' + index + ']'));
                                        });
                                    });
                                }
                                ;
    </script>

Quando debuggo o Controller antes de dar um save() a lista esta null, não sei se fiz certo a forma de alimentar elas! Alguém poderia me ajudar ?