私は外部キーを持たない他のエンティティと一緒に、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");
}
});
});
とこれもようなエラー示されている「キャッチされない例外を:メモリ不足」
例外は何ですか? – wahwahwah
"キャッチされない例外:メモリ不足" –