Pessoal, criei uma entidade usuário que possui um relacionamento OneToOne com a entidade setor:
@OneToOne (cascade=CascadeType.PERSIST)
@JoinColumn(name="setor_id", nullable=true)
private Setor setor;
e na minha página jsp eu listo os setores em um combobox:
<div class="campo">
<form:label path="setor">Setor</form:label><br>
<form:select path="setor" required="true" >
<form:option value=""> Setor</form:option>
<c:forEach var="setor" items="${setores}">
<form:option value="${setor.id}">${setor.nome}</form:option>
</c:forEach>
</form:select>
</div>
porém quando clico em salvar nada ele entra no if de erro do metodo save no controller:
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String save(@RequestParam Long id, @ModelAttribute("usuario") @Validated Usuario usuario,
BindingResult result) {
lista();
if (result.hasErrors()) {
System.out.println("-------entrou no erro---------------");
return "usuario/cadastro";
}
Avatar avatar = avatarService.getAvatarByUpload(usuario.getFile());
Setor setor = setorService.findById(id);
usuario.setAvatar(avatar);
usuario.setSetor(setor);
usuarioService.save(usuario);
return "redirect:/auth/form";
}
Acredito que seja porque o Setor faz parte do objeto usuário e o que está sendo passado pela página seja o id do setor.
Se puderem ajudar agradeço muito.