Persistindo entidades relacionadas com Hibernate

Olá,

Estou desenvolvendo uma aplicação com Hibernate e tenho duas entidades, Verbete e NomeVerbete, onde, em Verbete, tem-se:

private List<NomeVerbete> nomes = new ArrayList<NomeVerbete>();

E, em NomeVerbete:

private Verbete verbete;

O relacionamento, então, é de muitos nomes para um verbete, já que podem existir sinônimos.

O mapeamento via annotations está todo certo, o problema é que eu preciso, na submissão de um mesmo formulário, inserir ou atualizar as entidades Verbete e NomesVerbete ao mesmo tempo.

Do modo como eu estou fazendo dá certo, porém sabe quando você tem aquela sensação de estar fazendo gambiarra sem querer?

Enfim, quero saber se não existe uma forma de, assim que eu inserir a entidade Verbete com a lista de nomes populada, sejam inseridas as entidades NomesVerbete presentes nessa lista, sem precisar ficar fazendo laços de repetição com verbeteService.inserirNomeVerbete(…).

Já ouvi falar do CascadeType, mas não sei se ele funcionaria do modo como penso.

Agradeço qualquer opinião. Obrigado.

Se você não consegue persistir os NomeVerbete apenas pelo Verbete, então não está totalmente certo.

E de documentação, já ouviu falar?
Se você tem dúvidas sobre algo, o melhor a fazer é pesquisar sobre e, não existe nada melhor que ler a documentação da API/Framework que quer usar para esclarecer as dúvidas.
Se alguma persistir, existe um site pouco conhecido que te ajuda. É este aqui
Se mesmo assim você não entender como o cascade e o CascadeType funcionam, aí você pode perguntar aqui.
Lógico, seja mais claro, mostre como está fazendo o mapeamento. Ninguém vai roubar teu código :smiley:

Talvez eu tenha me expressado mal, perdoe-me. Sim, eu já visitei a documentação e já varri a Internet buscando respostas em fóruns e postagens em blogs, mas nada conseguiu satisfazer minha dúvida, que é basicamente: se eu definir os CascadeType de forma correta, bastará eu inserir a entidade Verbete no banco, com a lista de NomeVerbete, para que os nomes sejam persistidos também? Eu entendo o conceito e os efeitos que o cascade tem (inclusive senti na pele por ter usado o ALL de forma errada), mas me falta um exemplo para o caso que citei.

Creio que não adianta postar meus códigos aqui, porque a coisa mais útil é essa parte da lista mesmo. Eu disse que o mapeamento está todo certo, porque os relacionamentos via annotations estão funcionando e, claro, as outras mais básicas também.

Pela sua resposta, já percebi que estou fazendo de forma errada o que eu quero. Valeu.

Sério, eu ainda quero ter o prazer de pesquisar algo no google ou ler a documentação e não encontrar nenhum exemplo satisfatório.
Por que digo isso? Antes de te responder eu fiz uma pesquisa rápida (veja aqui). E, sim, eu achei respostas com cada um dos tipos de CascadeType.
Você sabe que se configurar corretamente vai ter o funcionamento esperado. Para configurar corretamente, precisa entender o que cada um dos CascadeType provê. Para saber, precisa estudar a documentação. Se apenas a documentação não resolver, precisará ver alguns exemplos (normalmente um ou dois resolvem o problema).
Se isto não funcionar, você pode perguntar aqui no guj, como eu já havia dito.
Quanto a relevância de postar teu código ou não, toda informação adicional é válida. Se você omite algum dado sobre o que está acontecendo, certamente terá respostas baseadas naquilo que é visto e não no todo do problema.
Eu volto a repetir, todos os problemas referentes a frameworks é derivado da falta de estudo do mesmo. As pessoas pensam que framework é igual celular, que você pode aprender a usar, usando e que uma ou outra coisa pode ser ignorada. Só que não. Sem conhecer bem o funcionamento do framework, do que ele faz “por baixo dos panos” é muito mais difícil conseguir tirar um bom proveito dele.

Acredito que encontrei um link que pode me ajudar, acho que me faltaram as palavras-chave adequadas. Vou seguir os seus conselhos sobre os frameworks.

Agradeço a disposição, valeu.