2016-06-23 16 views
1

私は外部キーを持たない他のエンティティと一緒に、JQueryでAjaxを使用してデータベースにjson taxistaPontoを挿入しようとしましたが、このエンティティを挿入する方法はわかりません外部キーで私はJson形式でリクエストを送信しています。たぶん私のJSONは正しいフォーマットではないのでしょうか?このエンティティをデータベースに挿入するにはどうすればよいですか?外部キーを持つ外部キーを持つエンティティをPOST経由で挿入します

モデル:

@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 
@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); 
    } 

ここでは、私の要求です:

$(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"); 
     } 
    }); 
}); 

@EDIT:これはexcpetionです: enter image description here

とこれもようなエラー示されている「キャッチされない例外を:メモリ不足」

+3

例外は何ですか? – wahwahwah

+0

"キャッチされない例外:メモリ不足" –

答えて

1

あなたは一錠法にtaxistaPontoオブジェクトを確認することができます。サーバー側で解析ロジック/処理要求を共有できますか?

あなたのケースでは、追加リクエストの処理中にサーバー側でこのエラーを解決できます。

+0

どうすればいいですか?私は多くの方法を試みたが、私はそれを修正する方法を理解できない。 –

+0

"add" APIサービスがリンクに到達できないか、リンク上でアクティブでない(https://expotaxi.herokuapp.com/taxistaponto/add)ようです。だからあなたは404エラーを取得しています。ソリューション:あなたのサーバー側がAPI(メソッド)がブラウザから到達可能であること、またはサーバー上に展開されアクティブであることを確認します。その後、もう一度試してください。 –

関連する問題