Vraptor + Hibernate + List Update

Caros,

Estou encontrando o seguinte problema, procurei pelo forum e não achei nada que me ajudasse.

Vamos ao problema:

Controller:

	@Get("/novo")
	@Liberado
	public void novoLogin() {
		UtilLogger.info("/novo - Start", this.getClass().getName());
		List<LocationBean> location = getDao().getAllLocations();
		List<PNBean> pn = getDao().getAllPN();
		List<MenuBean> menu = getDao().getAllMenu();
		List<EntityBean> entity = getDao().getAllEntity();
		result.include("locationList", location);
		result.include("pnList", pn);
		result.include("menuList", menu);
		result.include("entityList", entity);
	}

Jsp:

<form id="usuariosForm" action="<c:url value="/usuarios"/>"
	method="POST">
<div style="float: left">
			<fieldset class="areaLocation">
				<legend>Locations</legend>
				<c:forEach items="${locationList}" var="location" varStatus="s">
					<input type='checkbox' name='locationList[${s.index}].adiciona'
						value="true" />${location.displayName}<br />
			</c:forEach>
			</fieldset>
		</div>
		<div style="float: left">
			<fieldset class="areaPN">
				<legend>PN</legend>
				<c:forEach items="${pnList}" var="pn" varStatus="s">
					<input type="checkbox" name="pnList[${s.index}].adiciona"
						value="true" />${pn.displayName}<br />
			</c:forEach>
			</fieldset>
		</div>
		<div style="float: left">
			<fieldset class="areaPN">
				<legend>Menu</legend>
				<c:forEach items="${menuList}" var="menu" varStatus="s">
					<input type="checkbox" name="menuList[${s.index}].adiciona"
						value="true" />${menu.displayName}<br />
			</c:forEach>
			</fieldset>
		</div>
		<div style="float: left">
			<fieldset class="areaPN">
				<legend>Entity</legend>
				<div>
					<c:forEach items="${entityList}" var="entity" varStatus="s">
						<input type="checkbox" name="entityList[${s.index}].adiciona" value="true" />${entity.displayName} <br />
					</c:forEach>
				</div>
			</fieldset>
		</div>
		<div class="camposLogin">
			<button type="submit">Enviar</button>
		</div>
</form>

Controller ||

	@Post("/usuarios")
	@Liberado
	public void adiciona(UsuarioBean usuario, List<LocationBean> locationList,
			List<PNBean> pnList, List<MenuBean> menuList,
			List<EntityBean> entityList) {

O problema que eu estou enfrentado é o seguinte:
-Faço uma busca no banco e retorno uma lista com essas 4 tabelas.
-Exibo essas informação em checkbox para o usuario escolher as opção que deseja.
-Quando envio o objeto do Controller para a JSP ele está todo preenchido.
-Quando a JSP me devolve o Objeto no metodo adiciona via /usuarios apenas o atributo boolean adiciona está preenchido para os 4 tipos de objeto.

ao invés de popular o boolean adiciona, popule algo como o id de cada objeto:

<c:forEach items="${entityList}" var="entity" varStatus="s">
   <input type="checkbox" name="entityList[${s.index}].id" value="${entity.id}" />${entity.displayName} <br />
</c:forEach>

assim, ele só vai mandar o id dos objetos que foram selecionados.

Obrigado pela atenção Lucas

Correto,

E tendo o retorno do id qual a melhor forma de relacionar o retorno da JSP com as informações que eu consultei?
Precisaria salvar em sessão elas? Ou Conseguiria retornar pela cache do hibernate?

Qual seria a melhor forma?

vc tem os ids das entidades, se quiser mais informações sobre elas, vc pode carregá-las do banco, pelo id.

se for pra associar com uma outra entidade (um many-to-one ou many-to-many) vc pode simplesmente colocar o objeto só com o id preenchido