java - @OneToOne Relationship on Spring mcv -
i'm tired of trying things , don't have results. user has 1 country , country has many user. problem when make new user. don't have idea problem.
i have 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 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      
i had same problem these,you can set object manually id.i hope solve problem.
try this!
usuario.setpais(paisservice.getpaisbyid(request.getparameter("pais")));      
Comments
Post a Comment