尝试处理我的创建/编辑表单我收到以下错误:
HTTP状态500 - 请求处理失败; 嵌套异常是javax.validation.UnexpectedTypeException:HV000030:找不到类型为:java.lang.Integer的验证程序.
我的控制器:
/** * This method will provide the medium to update an existing Game. * * @param id bla * @param model bla * @return bla */ @RequestMapping(value = {"/edit?id={id}"}, method = RequestMethod.GET) public String initEditGame( @PathVariable int id, ModelMap model ) { Game game = gameService.findById(id); model.addAttribute("game", game); model.addAttribute("edit", true); return "host/games/createOrUpdate"; } /** * This method will be called on form submission, handling POST request for * updating game in database. It also validates the user input * * @param game bla * @param id bla * @param result bla * @param model bla * @param locale blie * @return bloe */ @RequestMapping(value = {"/edit?id={id}"}, method = RequestMethod.POST) public String processEditGame( @ModelAttribute("game") @Valid Game game, BindingResult result, ModelMap model, @PathVariable int id, Locale locale ) { if (result.hasErrors()) { return "host/games/createOrUpdate"; } gameService.update(game); model.addAttribute("success", "Game " + game.getName() + " updated successfully"); return "host/games/createGameSucces"; }
我的模特课:
@Entity @Table(name = "GAME") public class Game implements Serializable { @Id @Column(name = "ID") @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @NotEmpty @Column(name = "NAME", unique = true, nullable = false) private String name; @NotEmpty @Column(name = "DESCRIPTION", nullable = false) private String description; @NotNull @Length(min = 4, max = 4) @Column(name = "CODE", unique = true, nullable = false) private Integer code; @NotNull @Temporal(javax.persistence.TemporalType.DATE) @Column(name = "CREATED") @DateTimeFormat(pattern = "yyyy/MM/dd") private Date created; @NotNull @Column(name = "STATE", nullable = false) private String state = State.ACTIVE.getState(); /** * */ public Game() { } /** * * @param name bla * @param description bleh */ public Game(String name, String description) { this.name = name; this.description = description; this.code = generateRoomNumber(); }
有什么建议?
我相信问题在于:
@NotNull @Length(min = 4, max = 4) @Column(name = "CODE", unique = true, nullable = false) private Integer code;
@Length
注释应仅用于String not Integer