jeudi 2 avril 2015

@OneToOne Relationship on Spring mcv

I'm tired of trying things and I don't have any results. My user has One country and the country has many user. The problem is when I make a new user. I don't have any idea where is the problem.


I have this User Bean:



@Entity
@Table(name="usuarios")
public class Usuario {

@Id
@GeneratedValue
@Column(name="id")
private Integer id;

@Column(name="nombre", nullable=false)
private String nombre;

@OneToOne
@JoinColumn(name = "id_pais")
private Pais pais;

/* Getters & Setters */
....
}


The Country Bean:



@Entity
@Table(name="paises")
public class Pais {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="id")
private Integer id;

@Column(name="nombre")
private String nombre;

@OneToMany(mappedBy="pais")
private Set<Usuario> usuarios;

/* Getters & Setters */

}


The controller:



@Controller
@RequestMapping(value = "/usuario")
public class UsuariosController {

@Autowired
private UsuarioService usuarioService;

@RequestMapping(method = RequestMethod.POST)
public RedirectView store(Usuario usuario) {
usuarioService.store(usuario);
return new RedirectView("../usuario");
}
@ModelAttribute("usuario")
public Usuario getUsuario() {
return new Usuario();
}
}


The Service:



@Service
public class UsuarioServiceImplement implements UsuarioService{

@Autowired
private UsuarioDAO usuarioDAO;

public void store(final Usuario usuario) {
usuarioDAO.store(usuario);
}
}


The DAO:



@Repository
public class UsuarioHibernateDAO implements UsuarioDAO{

@Autowired
private SessionFactory sessionFactory;

@Transactional(readOnly = false)
public void store(final Usuario usuario) {
sessionFactory.getCurrentSession().save(usuario);
}
}


The form:



<form:form action="../usuario" method="POST" commandName="usuario">

<!-- nombre -->
<form:input path="nombre" type="text" class="form-control" id="nombre" />

<!-- pais -->

<form:select path="pais" class="form-control">
<form:option value="1">España</form:option>
</form:select>
<input type="submit" class="btn btn-success" value="Enviar" />
</form:form>


And I obtain this:



Estado HTTP 400 -

type Informe de estado

mensaje

descripción El requerimiento enviado por el cliente era sintácticamente incorrecto.

Apache Tomcat/8.0.20

Aucun commentaire:

Enregistrer un commentaire