`
hz_chenwenbiao
  • 浏览: 1008015 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

hibernate获取记录行数异常

阅读更多

使用hibernate时来查询符合条件的记录条数时出现如下的异常:

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
	at org.hibernate.type.IntegerType.set(IntegerType.java:64)
	at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:154)
	at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:136)
	at org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1732)
	at org.hibernate.loader.Loader.bindParameterValues(Loader.java:1703)
	at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1593)
	at org.hibernate.loader.Loader.doQuery(Loader.java:696)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
	at org.hibernate.loader.Loader.doList(Loader.java:2232)
	at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
	at org.hibernate.loader.Loader.list(Loader.java:2124)
	at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:118)
	at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1597)
	at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:306)
	at org.hibernate.impl.CriteriaImpl.uniqueResult(CriteriaImpl.java:328)
	at org.edu.scut.lab24.uam.service.impl.PostsServiceImpl.getAllEntityCount(PostsServiceImpl.java:687)
	at org.edu.scut.lab24.uam.service.impl.PostsServiceImpl$$FastClassByCGLIB$$e0aeb7ee.invoke(<generated>)
	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
	at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:692)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
	at org.edu.scut.lab24.interceptor.CacheInterceptor.beforeGet(CacheInterceptor.java:55)
	at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:622)
	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:611)
	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
	at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:625)
	at org.edu.scut.lab24.uam.service.impl.PostsServiceImpl$$EnhancerByCGLIB$$1b7fcf7b.getAllEntityCount(<generated>)
	at org.edu.scut.lab24.uam.service.impl.PostsServiceImpl$$FastClassByCGLIB$$e0aeb7ee.invoke(<generated>)
	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
	at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
	at org.edu.scut.lab24.uam.service.impl.PostsServiceImpl$$EnhancerByCGLIB$$f89aba2f.getAllEntityCount(<generated>)
	at org.edu.scut.lab24.web.controller.posts.PostsManagerController.getsearPosts(PostsManagerController.java:451)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)
	at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)
	at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414)
	at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	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.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
	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 com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)
	at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
	at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
	at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:381)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	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.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.Http11AprProcessor.process(Http11AprProcessor.java:861)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)
	at java.lang.Thread.run(Thread.java:619)

 

获取记录数的部分代码如下:

 

Criteria c = baseDao.getCriteria(Post.class);
c.createAlias("obj","obj");
		c.add(Restrictions.eq("obj.objectPK", Long.parseLong(objPK)));
		c.add(Restrictions.ne("title", "回复"));
		c.add(Restrictions.ne("recommended", "3"));

Object object = c.setProjection(Projections.rowCount()).uniqueResult();
			count = ((Integer)object).intValue();

出现这个异常的主要原因是在

c.add(Restrictions.ne("recommended", "3"));

 这句代码上,因为recommended为int型,所以这里使用string类型显示不对,所以可以修改为:

c.add(Restrictions.ne("recommended", new Integer(3)));

 由于java自动装拆包技术,所以可以直接写成:

c.add(Restrictions.ne("recommended",3));
 
分享到:
评论

相关推荐

    hibernate配置参数详解

    这个配置项指定了每次从数据库获取数据时的最大行数,适用于大数据量的场景。 这些配置项的合理设置能够极大地提高Hibernate与数据库交互的效率和可靠性。根据具体的应用需求和数据库环境,开发者可以选择合适的...

    Hibernate的Template方法以及SQL简介

    - `List find(String queryString)`:通过HQL(Hibernate Query Language)查询字符串来获取实体集合。 - `List findByNamedQuery(String queryName)`:根据命名查询返回实体集合。 - `Object get(Class entity...

    hql总条数.txt

    根据给定的文件信息,我们可以深入探讨HQL(Hibernate Query Language)在查询数据库记录总数中的应用,以及如何在Java环境中使用Hibernate框架执行此类查询。HQL是一种面向对象的查询语言,它允许开发者以面向对象...

    shh整合框架实现分页

    1. **计算总记录数**:首先,需要获取数据库中的所有记录数。 2. **计算总页数**:根据每页显示的记录数(`rowsPerPage`)计算出总的页数。 3. **确定当前页的数据范围**:确定当前页需要查询的起始记录位置和结束...

    基于JDBC封装的BaseDao(实例代码).rar_java编程

    3. executeUpdate(String sql):执行SQL更新,如INSERT、UPDATE、DELETE语句,返回受影响的行数。 4. preparedStatement(String sql):创建PreparedStatement对象,方便进行参数化查询。 5. closeResources():关闭...

    excel读取写到数据库工具

    7. **日志记录**:为了便于调试和跟踪,程序应该包含日志记录,记录下每个操作的详细信息,比如成功导入的数据行数、出现的错误等。 8. **用户界面**:虽然描述中没有提及,但通常这类工具会有简单的用户界面,允许...

    Java企业级应用开发4作业1

    - 错误处理和日志记录是非常重要的,确保在出现异常时有适当的反馈。 - 对于查询结果的映射,可以使用ORM框架,如Hibernate或MyBatis,以减少手动映射的工作。 通过实现这个DBUtil类,可以使得Java应用程序更易于...

    ssh框架搭建+datatables分页

    1. **后端接口**:在SSH框架中,你需要创建一个服务接口,该接口将处理分页请求,获取指定范围的数据并返回。 2. **控制器处理**:在Struts的Action类中,创建一个方法接收请求参数(页码、每页大小),调用服务接口...

    导入导出excel优化

    5. **错误处理与日志**:在处理过程中,及时捕获并记录异常,提供详细的错误信息,便于排查问题。 具体到Java代码实现,`ImportExcelNewDemo`很可能是一个示例类,用于演示如何导入Excel并批量保存数据。在实际开发...

    java操作sqlserver 数据库实例.rar.rar

    10. **JPA与Hibernate**: 如果需要更高级的对象关系映射(ORM),可以考虑使用Java Persistence API (JPA) 或 Hibernate,它们简化了数据库操作,将Java对象直接映射到数据库记录。 11. **SQL Server特有的功能**: ...

    JDBC工具类完整版.docx

    方法内部先获取连接,然后创建预编译的`PreparedStatement`,设置参数,执行更新操作,最后根据返回的受影响行数判断操作是否成功。 4. **查询通用方法**:`executeQuery()`方法执行SQL查询。它也使用`...

    Dao数据库工具类

    - 在实际开发中,应该更细致地处理异常,例如记录日志或向用户展示友好的错误信息。 4. **资源管理**: - 通过在`finally`块中关闭数据库资源,可以避免内存泄漏等问题。 - 在实际应用中,还可以考虑使用Java 7...

    存储过程入门

    2. 存储过程中,使用select into语句时,必须确保数据库中有相应记录,否则会抛出“No data found”异常。 3. 在存储过程中,别名不能和字段名称相同,否则虽然编译能通过,但运行时会报错。 4. 对于存储过程中出现...

    DATABASE_do.rar_流程

    8. **异常处理**:在实际应用中,应始终捕获并处理可能抛出的`SQLException`,并根据需要记录错误信息或向用户显示错误消息。 以上是Java数据库操作的基本流程,针对Oracle数据库可能还需要考虑特定的优化和特性,...

    黑马面试宝典知识点复习

    - **工作原理**:通过动态生成script标签来获取跨域数据。 #### Redis(缓存数据库) - **定义**:一款开源的键值存储系统。 - **用途**:作为高速缓存、会话存储、消息队列等。 - **优点**:高性能、数据持久化、...

Global site tag (gtag.js) - Google Analytics