javax.die Validierung.UnexpectedTypeException: HV000030: No validator gefunden werden konnte, für Typ: java.lang.Integer
Ich, um input für paper_name
und date_of_birth
als int
und date
Datentyp bzw. aus einem Formular.
Unten ist der code:
<li> Number:<input type="text" name="paper_number" ></li>
< li>date of birth: <input type="text" name="date_of_birth"></li>
Habe ich paperNumber
und dateOfBirth
variable in der Steuerung als int und Datum datatypes, beziehungsweise.
Bitte helfen Sie mir, ändern Sie den Datentyp paper_number und date_of_birth von string zu int und date jeweils.
Ich habe gesehen, andere Antworten auf stackoverflow und haben Sie genutzt, jstl für die gleiche, aber ich bin nicht in der Lage, um herauszufinden, wie wenden Sie es hier.
Controller-code:
@RequestMapping(value = "/student" , params = "add", method = RequestMethod.POST )
public String postAddStudent(
@RequestParam("date_of_birth" ) Date date,
@RequestParam("paper_number" ) int paperNumber)
Unten ist die EntityClass
public class EntityClass extends BaseEntity {
@Column(name = "DATE_OF_BIRTH", nullable = false)
@NotBlank
@DateTimeFormat(pattern = "dd-mm-yyyy")
private Date dateOfBirth;//TODO
@Column(name = "PAPER_NUMBER")
private short paperNumber;
..
}
Unten ist der log -
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.Integer.
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
root cause
javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.Integer.
org.hibernate.validator.internal.engine.ConstraintTree.verifyResolveWasUnique(ConstraintTree.java:394)
org.hibernate.validator.internal.engine.ConstraintTree.findMatchingValidatorClass(ConstraintTree.java:375)
org.hibernate.validator.internal.engine.ConstraintTree.getInitializedValidator(ConstraintTree.java:333)
org.hibernate.validator.internal.engine.ConstraintTree.validateConstraints(ConstraintTree.java:155)
org.hibernate.validator.internal.engine.ConstraintTree.validateConstraints(ConstraintTree.java:125)
org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:86)
org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:442)
org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:387)
org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:351)
org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:303)
org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:133)
org.hibernate.cfg.beanvalidation.BeanValidationEventListener.validate(BeanValidationEventListener.java:136)
org.hibernate.cfg.beanvalidation.BeanValidationEventListener.onPreInsert(BeanValidationEventListener.java:94)
org.hibernate.action.internal.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAction.java:178)
org.hibernate.action.internal.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:75)
org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:362)
org.hibernate.engine.spi.ActionQueue.addResolvedEntityInsertAction(ActionQueue.java:203)
org.hibernate.engine.spi.ActionQueue.addInsertAction(ActionQueue.java:183)
org.hibernate.engine.spi.ActionQueue.addAction(ActionQueue.java:167)
org.hibernate.event.internal.AbstractSaveEventListener.addInsertAction(AbstractSaveEventListener.java:320)
org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:287)
org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:193)
org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:126)
org.hibernate.ejb.event.EJB3MergeEventListener.saveWithGeneratedId(EJB3MergeEventListener.java:71)
org.hibernate.event.internal.DefaultMergeEventListener.saveTransientEntity(DefaultMergeEventListener.java:236)
org.hibernate.event.internal.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:216)
org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:154)
org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:910)
org.hibernate.internal.SessionImpl.merge(SessionImpl.java:892)
org.hibernate.engine.spi.CascadingAction$6.cascade(CascadingAction.java:288)
org.hibernate.engine.internal.Cascade.cascadeToOne(Cascade.java:380)
org.hibernate.engine.internal.Cascade.cascadeAssociation(Cascade.java:323)
org.hibernate.engine.internal.Cascade.cascadeProperty(Cascade.java:208)
org.hibernate.engine.internal.Cascade.cascade(Cascade.java:165)
org.hibernate.event.internal.AbstractSaveEventListener.cascadeBeforeSave(AbstractSaveEventListener.java:423)
org.hibernate.event.internal.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:213)
org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:154)
org.hibernate.event.internal.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:76)
org.hibernate.internal.SessionImpl.fireMerge(SessionImpl.java:900)
org.hibernate.internal.SessionImpl.merge(SessionImpl.java:884)
org.hibernate.internal.SessionImpl.merge(SessionImpl.java:888)
org.hibernate.ejb.AbstractEntityManagerImpl.merge(AbstractEntityManagerImpl.java:879)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:497)
org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:365)
com.sun.proxy.$Proxy41.merge(Unknown Source)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:497)
org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:240)
com.sun.proxy.$Proxy41.merge(Unknown Source)
org.springframework.data.jpa.repository.support.SimpleJpaRepository.save(SimpleJpaRepository.java:329)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:497)
org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.executeMethodOn(RepositoryFactorySupport.java:368)
org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:349)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
com.sun.proxy.$Proxy53.save(Unknown Source)
in.ac.jmi.controllers.AdminController.postAddStudent(AdminController.java:262)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:497)
org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
InformationsquelleAutor Md Faisal | 2016-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hoffe, du bist mit der überprüfung in hibernate wie diese,
@NotBlank
ist für String-Typ. Es gibt kein Konzept derjava.util.Date
leer ist. Es können null oder nicht null..@NotNull
statt,Sehen Balus Antwort und @NotBlank für mehr details.
Update
Für die oben genannten Fehler im Datum Art versuchen add
@DateTimeFormat
annotation und erwähnen Sie das format von Datum geben Sie als Eingabe (sagenyyyy-mm-dd
). Wie untenStatt
Date
undint
Art versuchen, mitString
geben. Das Problem ist der controller nicht immer die Wert ist, als erwartet geben.ja mit dem string funktioniert es..!, aber ich habe mit int und das Datum in der form selbst.
Verwenden
@ModelAttribute
parameter, Wenn Sie die Bindung einer request-parameter auf ein Feld. Siehe VerweisFroh, dass Sie es getan hat. Sie sind herzlich willkommen !
InformationsquelleAutor Vinoth Krishnan
gut, wenn Sie nicht mit einem framework wie spring mvc oder controller , dann haben Sie es zu tun Ihr selbst. Request-parameter immer als string gesendet, um server-Seite. Nun, ob die Rahmen-arbeiten können, tun Sie es, bevor Anfrage kommt in den controller als Teil der interceptor. Andernfalls müssen Sie es manuell tun, nach dem aufstehen
request.getParameter("param_name")
InformationsquelleAutor M Sach
Wenn Sie einschränken möchten, die Eingabe vom Benutzer eingegeben werden Sie haben, Javascript zu verwenden, beschränken Sie die Eingabe-Typ (Sie können unter Verwendung der jQuery validator plugin für diese).
Sonst, wenn Sie möchten, konvertieren Sie die Eingabe durch den Benutzer eingegeben werden, um integer und date, in Ihrer form action (servlet, vielleicht), die Sie benötigen, um eine Analyse der integer mit
als für Datum, verwenden Sie " = SimpleDateFormat-API.
Referenzen:
InformationsquelleAutor Kenpachi
Ich bin mir nicht sicher, aber, was ich vermute, ist
private short paperNumber;
ist das problem.. Die Anfrage mapping mapping ist der gleiche Typ Integer, Nicht sicher, wie Herabstufung Integer zu klein int funktioniert in hibernate.InformationsquelleAutor Anand Vaidya