Estou utilizando Vraptor com Hibernate e gostaria de uma dica para melhorar minha implantação:
Tenho que um cadastro de contas que tem um relacionamento NxN com Usuarios, utilizando uma tabela do meio com colunas extras.
ContasxContasUsuariosxUsuarios
No form do cadastro de contas, eu listo todos os usuários que podem ser associados aquela conta com uma checkbox ao lado de cada, e
um inputText para adicionar observações.
para que ao cadastrar uma conta o usuário possa escolher quais usuários serão associados com aquela conta.
Eu implementei desta forma:
Ao submeter o form de cadastro da conta, também envio a lista dos ids dos usuários a serem associados para esta conta.
<c:forEach items="${usuarios}" var="usuario" varStatus="s">
<li> <input type="checkbox" value ="${usuario.id}" name="usuariosSelecionados[${s.index}]" />${usuario.nome}
<input type="text" name="observacaoUsuario[${s.index}]"/>
</li>
</c:forEach>
public void add(Conta conta, List<String> usuariosSelecionados, List<Integer> observacaoUsuario) {
E no controller eu busco cada usuário pelo id e associo a esta conta e no final gravo a conta.
Está funcionando, mas não gostei muito da forma que ficou, queria dicas de implementar isso de acordo boas práticas.