Pues nos encontramos aprendiendo una nueva tecnología, y como todo lo nuevo, uno se topa con varias dificultades en el camino... existe un error del cual no encontré mucha información y es por lo que la publico en el blog; el error es
javax.validation.UnexpectedTypeException: No validator could be found for type: java.lang.Integer
Pero igual aplica para java.math.BigDecimal o algunos otros tipos, por el error y el stacktrace uno no da con cuál es el verdadero problema, hasta que me topé con este link de "solid". El cual me dio idea de lo que era, resulta que yo tenía para los campos en los que tenía problemas una anotacion @Size(min=0), me imagino que tendré que investigar cómo utilizar bien esas validaciones, pero quitándolas se resolvió el problema, mientras aprendo a utilizarlas tendré que hacer las validaciones por afuera...
Espero le sirva a alguien...
Comentarios
Quité el @Size y me funcionó correctamente, no sé muy bien por quñe.
Gracias de todos modos.
at sia.servicios.sgl.implementacion.SgTipoEspecificoImpl.guardarTipoEspecifico(SgTipoEspecificoImpl.java:57)
Caused by: javax.validation.UnexpectedTypeException: No validator could be found for type: sia.modelo.Usuario
Mis clases están así:
SgTipoEspecifico.java
@Size(max = 5)
@JoinColumn(name = "GENERO", referencedColumnName = "ID")
@ManyToOne
private Usuario genero;
Usuario.java
@Id
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 20)
@Column(name = "ID")
private String id;
En mi caso, el tamaño de la propiedad “genero” de la clase SgTipoEspecifico.java es de máximo 5, pero en mi clase Usuario.java su “id” es de tamaño 20, así que no coinciden y por eso causa el error en la validación.
Lo solucioné quitando la anotación “@Size(max = 5)” de mi clase SgTipoEspecifico.java, pero también se pude cambiarla a “@Size(max = 20)”