gpt4 book ai didi

java - 无法使用 JpaRepository 解析 SpringMVC 中的 ResponseEntity

转载 作者:行者123 更新时间:2023-11-30 02:56:46 25 4
gpt4 key购买 nike

这是我的 Controller :

package com.hodor.booking.controller;

import com.hodor.booking.jpa.domain.Vehicle;
import com.hodor.booking.service.VehicleService;
import com.wordnik.swagger.annotations.Api;
import org.apache.commons.lang.time.DateUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
import java.util.List;

@RestController
@RequestMapping("/api/v1/vehicles")
@Api(value = "vehicles", description = "Vehicle resource endpoint")

public class VehicleController {

private static final Logger log = LoggerFactory.getLogger(VehicleController.class);

@Autowired
private VehicleService vehicleService;

@RequestMapping(method = RequestMethod.GET)
public List<Vehicle> index() {
log.debug("Getting all vehicles");
return vehicleService.findAll();
}

@RequestMapping(value="/save", method=RequestMethod.POST, consumes="application/json")

@ResponseBody
public Vehicle setVehicle(@RequestBody Vehicle vehicle) {
log.debug("Inserting vehicle");

if (vehicle.getLicensePlate() == null){
return new ResponseEntity<Void>(HttpStatus.CONFLICT);
}

return vehicleService.saveVehicle(vehicle);
}
}

我想在上面的 If-Guard 中实现的是,如果车辆对象没有 LicensePlate 成员,则发回相应的 HTTP 状态 header 冲突或其他内容。

我来自 Node 和 Express 背景,我习惯于设置 header 、发送响应并完成它。然而在这种情况下(JPA)它似乎不起作用。有什么想法吗?

最佳答案

一种替代方法是利用 Spring 的验证支持来声明性地添加 POJO 的验证。基本上,您可以向 Vehicle 类添加注释,例如:

public class Vehicle {
@NotNull
private LicensePlate licensePlate;

// getters, setters
}

然后将 @Valid 注释添加到 Controller 方法中:

@ResponseBody
public Vehicle setVehicle(@RequestBody @Valid Vehicle vehicle) {
log.debug("Inserting vehicle");
return vehicleService.saveVehicle(vehicle);
}

如果验证失败,Spring将返回400响应。

确保您的类路径上有 JSR-303/JSR-349 Bean Validation 实现,例如 Hibernate Validator(它可以在没有 Hibernate ORM 支持的情况下使用)。

更多信息可以在validation chapter中找到Spring 引用文档。

关于java - 无法使用 JpaRepository 解析 SpringMVC 中的 ResponseEntity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37036460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com