首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用hibernate和vraptor通过POST插入具有外键的实体

使用hibernate和vraptor通过POST插入具有外键的实体
EN

Stack Overflow用户
提问于 2016-06-23 11:11:56
回答 1查看 135关注 0票数 1

我正在尝试通过POST使用Ajax和JQuery在数据库中插入一个json taxistaPonto,没有外键的其他实体也可以,但我不知道如何插入这个有外键的实体。我正在发送Json格式的请求。也许我的json格式不正确?如何在我的数据库中插入此实体?

型号:

代码语言:javascript
复制
@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

控制器:

代码语言:javascript
复制
@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:

代码语言:javascript
复制
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);
    }

以下是我的请求:

代码语言:javascript
复制
$(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:

并显示类似于“未捕获异常:内存不足”的错误。

EN

回答 1

Stack Overflow用户

发布于 2016-06-23 14:43:34

你能在Salver方法上检查taxistaPonto对象吗?你能分享解析逻辑/在服务器端处理请求吗?

对于您的情况,您可以在处理add请求时在服务器端纠正此错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37981690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档