问题描述
- 查询一个对象一查就报错 新人没什么积分 希望好心人帮忙解答下。谢谢!!!
-
String hql = "FROM ReceivedRecord where id =22222";
Query query = this.getSession().createQuery(hql);
List ReceivedRecords =query.list();
System.out.println("=========="+ReceivedRecords.size());java.lang.AbstractMethodError: com.dev.swms.server.model.abstractEntity.NullString.nullSafeGet(Ljava/sql/ResultSet;[Ljava/lang/String;Lorg/hibernate/engine/spi/SessionImplementor;Ljava/lang/Object;)Ljava/lang/Object;
at org.hibernate.type.CustomType.nullSafeGet(CustomType.java:124)
at org.hibernate.type.AbstractType.hydrate(AbstractType.java:106)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2701)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1541)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1473)
at org.hibernate.loader.Loader.getRow(Loader.java:1373)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:640)
at org.hibernate.loader.Loader.doQuery(Loader.java:850)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:289)
at org.hibernate.loader.Loader.doList(Loader.java:2447)
at org.hibernate.loader.Loader.doList(Loader.java:2433)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2263)
at org.hibernate.loader.Loader.list(Loader.java:2258)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:470)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:355)
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1161)
at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
at com.swg.logistics.service.edi.pojo.DefaultReceivedRecordAppService.queryReceivedRecordInfo(DefaultReceivedRecordAppService.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:318)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
at com.sun.proxy.$Proxy18.queryReceivedRecordInfo(Unknown Source)
at com.swg.logistics.controller.EdiController.doQueryReceivedRecordInfo(EdiController.java:114)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:119)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:745)
解决方案
检查一下驱动包和hibernate的版本 看看是不是这个问题呢,前提映射的你已经查过没有问题了。
解决方案二:
其他对象查都没有问题 只有这个对象一查就报错
解决方案三:
估计是没有查到值吧。确定id字段是字符型的。
解决方案四:
只查对象 String hql = "FROM ReceivedRecord"; 错误仍然是这个
解决方案五:
有这样的一个现象 如果查询跟上一个不是id的参数查询是没有问题的 但是带上id或者什么条件都不带 就报这个错误 映射文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
wms_revRecord
START WITH 1000
<many-to-one name="location" class="com.dev.swms.server.model.base.Location">
<column name="LOCATION_ID" not-null="true"/>
</many-to-one>
<many-to-one name="itemKey" class="com.dev.swms.server.model.base.ItemKey">
<column name="ITEM_KEY_ID" not-null="true"/>
</many-to-one>
<property name="receivedQuantity" type="double" column="RECEIVED_QUANTITY"/>
<property name="receivedQuantityMU" type="double" column="RECEIVED_QUANTITY_MU"/>
<many-to-one name="packageUnit" class="com.dev.swms.server.model.base.PackageUnit">
<column name="PACKAGE_UNIT_ID" not-null="true"/>
</many-to-one>
<property name="receiveDate" type="date">
<column name="RECEIVE_DATE"/>
</property>
<property name="occurTime" type="timestamp">
<column name="OCCUR_TIME" not-null="true"/>
</property>
<property name="operator" type="string">
<column name="OPERATOR" not-null="true" length="20"/>
</property>
<property name="description" column="DESCRIPTION" type="string" length="255"/>
<property name="moveDocCode" type="string" length="20">
<column name="MOVE_DOC_CODE"/>
</property>
<many-to-one name="receivedDoc" class="com.dev.swms.server.model.receiving.ReceivedDoc">
<column name="RECEIVED_DOC_ID"/>
</many-to-one>
<many-to-one name="worker" class="com.dev.swms.server.model.base.Worker">
<column name="WORKER_ID"/>
</many-to-one>
<property name="qualityQty" column="QUALITY_QTY" type="double"/>
<property name="qualityCode" column="QUALITY_CODE" type="com.dev.swms.server.model.abstractEntity.NullString"/>
<property name="beMoved" column="BE_MOVED" type="boolean"/>
<property name="bePrint" column="BE_PRINT" type="boolean"/>
<many-to-one name="forkWorker" class="com.dev.swms.server.model.base.Worker">
<column name="FORKWORKER_ID"/>
</many-to-one>
<many-to-one name="stevedore" class="com.dev.swms.server.model.base.Worker">
<column name="STEVEDORE_ID"/>
</many-to-one>
<many-to-one name="LP" class="com.dev.swms.server.model.inventory.Stock" cascade="save-update,persist">
<column name="LP_ID"/>
</many-to-one>
<property name="LPCode" column="LPCODE" type="string" length="20"/>
<property name="beFromRF" column="BE_FROM_RF" type="boolean"/>
</class>
<query name="getReceivedRecordsByMoveDoc">
<![CDATA[FROM ReceivedRecord rec WHERE rec.beMoved = false
AND rec.asn.warehouse.id = :warehouseId
AND rec.asn.company.id = :companyId
AND rec.moveDocCode = :code
]]>
</query>
解决方案六:
没有实现父类的抽象方法。所以在实现接口或覆写父类方法时,最好的实践是加上@Override。
解决方案七:
是hibernate吗,我也不太懂,那个映射的时候id标签不用的吗
解决方案八:
一般和你的SQL JDBC版本有问题,版本不对,比如程序用的是3.0,而服务器用的JDBC驱动是2.0,就有问题。
解决方案九:
虽然看不出是啥问题,但是,出手很大方啊
解决方案十:
at com.swg.logistics.service.edi.pojo.DefaultReceivedRecordAppService.queryReceivedRecordInfo(DefaultReceivedRecordAppService.java:26)
DefaultReceivedRecordAppService.java这个文件的26行出错了
错误原因是AbstractMethodError
错误日志能看出来的就是这些了,我百度了一下,有人因为jar包冲突出现过你的错误。因为看不到您具体代码。不好说具体什么错误