【问题标题】:POST nested object Rest Spring MVC AngularJSPOST 嵌套对象 Rest Spring MVC AngularJS
【发布时间】:2016-09-18 11:39:13
【问题描述】:

我正在尝试解决保存具有一对一关系的实体的问题。

我有一个包含字段 Apartment 的租户对象。每次我尝试保存一个新的租户对象时,我都会收到 400 错误,尽管参数对我来说似乎没问题:

参数

回应:

如果我从输入表单中删除 Apartment,则可以毫无问题地保存租户。

如何保存实体及其关系???

RestController

@RequestMapping(method = RequestMethod.POST)
    public ResponseEntity<?> create(@Valid @RequestBody Tenant tenant, BindingResult result) {
        if (result.hasErrors()) {
            ApiResponse message = new ApiResponse();
            message.setErrors(result.getFieldErrors());
            return new ResponseEntity<ApiResponse>(message, HttpStatus.UNPROCESSABLE_ENTITY);
        }
        try {
            service.saveTenant(tenant);
        } catch (ConstraintViolationException e) {
            result.rejectValue("apartmentNumber", "error.apartment", DUPLICATE_VALUE);

            Map<String, String> test = new HashMap<>();
            for (FieldError fieldError : result.getFieldErrors()) {
                test.put(fieldError.getField(), fieldError.getDefaultMessage());
            }
            return new ResponseEntity<Map<String, String>>(test, HttpStatus.CONFLICT);
        }
        return new ResponseEntity<Tenant>(tenant, HttpStatus.CREATED);
    }

JSP 页面 - 有问题的输入

<div class="form-group">
    <label for="inputEmail3" class="col-sm-3 control-label">Mieszkanie</label>
    <div class="col-sm-9">
        <select name='apartment' ng-model="ctrl.tenant.apartment" ng-required='true' class="form-control">
          <option ng-repeat="item in ctrl.apartments" value="{{item}}"
          ng-selected="ctrl.tenant.apartment.description == item.description">
            {{item.description}}</option>
        </select>
        <p class="help-block">
            <span class='error' ng-show="myForm.tenant_apartment.$invalid">
              Pole wymagane</span> <span class='error'>{{errors.tenant_apartment}}</span>
        </p>
    </div>
</div>

【问题讨论】:

    标签: angularjs spring rest


    【解决方案1】:

    你的 Tenant 类是否有一个 Appartment 的成员变量作为 Set 类型。 我是说

    公共类租户实现可序列化{ 私人集 公寓; ...... ...... }

    【讨论】:

    • 它是一对一的关系,所以它只是@OneToOne private Apartment apartment;
    猜你喜欢
    • 1970-01-01
    • 2015-12-03
    • 2014-05-08
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 2015-07-26
    • 2016-02-06
    • 2015-05-31
    相关资源
    最近更新 更多