No validator could be found for type: java.lang.Integer
17,111
I believe problem is with this:
@NotNull
@Length(min = 4, max = 4)
@Column(name = "CODE", unique = true, nullable = false)
private Integer code;
@Length
annotation should be used only for String not Integer
Author by
Rafael
Android / Kotlin Java / SPRING Fascinated by things we can't touch.
Updated on June 04, 2022Comments
-
Rafael almost 2 years
Trying to process my create/edit form I get the following error:
HTTP Status 500 - Request processing failed; nested exception is javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.Integer.
My Controller:
/** * 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"; }
My model class:
@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(); }
Any suggestions?