0

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

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

$.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

你能帮助我吗?

4

1 回答 1

2

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

如果没有看到你的映射,很难说别的。

阅读有关级联的 Hibernate 文档。

于 2012-05-23T20:36:28.637 回答