samedi 25 juin 2016

Insert entity with foreign keys with hibernate and vraptor via POST

Im trying to insert a json taxistaPonto in database using Ajax with JQuery via POST, with other entity without foreign key was fine, but i don't know how to insert this entity with foreign keys. Im sending the requests in Json format. Maybe my json isnt in right format? How can i insert this entity in my database? Model: @Entity(name="taxistaPonto") public class TaxistaPonto { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; @OneToOne @JoinColumn(name = "fk_taxista",nullable=false) private Taxista taxista; @OneToOne @JoinColumn(name = "fk_ponto",nullable=false) private Ponto ponto; public TaxistaPonto() { super(); } public TaxistaPonto(Integer id, Taxista taxista, Ponto ponto) { super(); this.id = id; this.taxista = taxista; this.ponto = ponto; }//... getters and setters Controller: @Controller @Path("/taxistaponto") public class TaxistaPontoController { @Inject private Result result; @Inject private TaxistaPontoDAO taxistaPontoDAO; @Consumes("application/json") @Post("/add") public void add(TaxistaPonto taxistaPonto){ taxistaPontoDAO.salvar(taxistaPonto); } } DAO: public void salvar(TaxistaPonto taxistaPonto) { Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); try { session.persist(taxistaPonto); session.getTransaction().commit(); } catch (Exception e) { session.getTransaction().rollback(); } HibernateUtil.shutdown(session); } Here is my request: $(document).ready(function(){ var carro = {"descricao" : "carro mt legal", "placa" : "12938713"}; var taxista = {id : 5, "nome" : "12:58", "sexo" : "trans", "login" : "loginmeu", "senha" : "minhasenhsa", carro : carro};; var ponto = {id : 8,"latitude" : "40", "longitude" : "96"}; var taxistaPonto = {taxista : taxista, ponto : ponto}; $.ajax({ type: "POST", url: "https://expotaxi.herokuapp.com/taxistaponto/add", data: JSON.stringify(taxistaPonto), contentType: "application/json", dataType: "json", success: function(data){ alert("sucesso"); }, error : function(data){ alert("error"); } }); });

Aucun commentaire:

Enregistrer un commentaire