带有嵌套对象的AJAX请求到Spring MVC控制器

时间:2012-05-23 20:27:19

标签: jquery ajax json hibernate spring-mvc

我有Spring MVC网络应用程序。我想使用Hibernate和AJAX。 有两个实体:Item和CatalogItem。实体CatalogItem包含一些字段和对Item的引用。

使用AJAX创建CatalogItem是可能的吗?使用普通对象我没有问题,但嵌套..我想要这样的东西: 来自jQuery的POST请求:

$.ajax({
    'type': 'POST',
    'url': myurl,
    'contentType': 'application/json',
    'data': JSON.stringify({'count':10,'deliveryTime':'2012-12-12T12:12:12',
    'itemId':{'name':'name','price':100,'description':'qwerty'}}),
    'dataType': 'json',
    'success': function(){
        //
    }
});

在春季控制器中:

@RequestMapping(value = "/add", method = RequestMethod.POST)
public void addItem(@RequestBody CatalogItem catalogItem) {
    catalogDAO.addCatalogItem(catalogItem);
}

但这不起作用。它抛出

[Request processing failed; nested exception is org.hibernate.PropertyValueException: not-null property references a null or transient value: entities.CatalogItem.itemId] with root cause
org.hibernate.PropertyValueException: not-null property references a null or transient value: entities.CatalogItem.itemId

你能帮助我吗?

1 个答案:

答案 0 :(得分:2)

您试图在不先保存项目的情况下保存CatalogItem。

如果没有看到你的映射,就很难说不出来。

阅读cascading上的Hibernate文档。