ssh中查询数据出现could not execute query,急急急

sgx425021234 2013-05-13 11:06:36
具体如下:
Struts Problem Report

Struts has detected an unhandled exception:
Messages:

ORA-00933: SQL ???????
could not execute query
could not execute query; SQL [ select count(*) from www.csdn.weibo.domain.Pictures where 1=1 and picture_type='aaa']; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query

File: oracle/jdbc/driver/DatabaseError.java
Line number: 112
Stacktraces
org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL [ select count(*) from www.csdn.weibo.domain.Pictures where 1=1 and picture_type='aaa']; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query

org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:635)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:339)
www.csdn.weibo.dao.impl.BaseDaoImpl.getCount(BaseDaoImpl.java:128)
www.csdn.weibo.service.impl.BaseServiceImpl.getCount(BaseServiceImpl.java:66)
www.csdn.weibo.action.PicturesAction.query(PicturesAction.java:102)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:446)
com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:285)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:238)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:238)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:544)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:233)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
www.csdn.weibo.filter.CacheFilter.doFilter(CacheFilter.java:32)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:619)


...全文
9984 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xianwangkai 2013-05-14
  • 打赏
  • 举报
回复
select count(*) from www.csdn.weibo.domain.Pictures where 1=1 and picture_type='aaa']; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query www.csdn.weibo.domain.Pictures这块有点问题,应该写法是from javabean o where o.属性名=值 还有就是count(*)修改为count(1)比较好
sgx425021234 2013-05-14
  • 打赏
  • 举报
回复
引用 4 楼 fangmingshijie 的回复:
语法错误,hibernate会认为select count(*) from www.csdn.weibo.domain.Pictures点之间是类和对象的以及属性的关系,单写表名或者点改为下划线。
原来的项目也是这么写的,没出现过这个错误
sgx425021234 2013-05-14
  • 打赏
  • 举报
回复
我知道把那个换成表名,能查出来。。
失落夏天 2013-05-14
  • 打赏
  • 举报
回复
你的执行语句是这条? select count(*) from www.csdn.weibo.domain.Pictures where 1=1 and picture_type='aaa'; 预编译里面?是不是放错了位置?
zhouyusunquan 2013-05-14
  • 打赏
  • 举报
回复
select count(*) from www.csdn.weibo.domain.Pictures where 1=1 and picture_type='aaa'; 你的sql有问题,另外这条也不是sql,如果你要运行,搞成sql,把www.csdn.weibo.domain.Pictures 换成你表的名字,hql也不是你这样写的, select o from javabean o where o.属性名=值
sgx425021234 2013-05-14
  • 打赏
  • 举报
回复
引用 9 楼 sgx425021234 的回复:
终于找到问题了 原来是把createQuery和createSQLQuery弄混了,在baseDaoImpl.java 里边我原来写的是
return Integer.valueOf((session.createSQLQuery(
						" select count(*) from " + clazz.getName() + " "
								+ whereSql).uniqueResult() + ""));
在jsp中拼接sql语句中写的是
private String spliceSql() {
		String whereSql = " where 1=1 ";

		if (user != null && user.getId() != null && !"".equals(user.getId())) {
			whereSql += " and user_id=" + user.getId() + " ";
		}

		if (pictures != null && pictures.getType() != null
				&& !"".equals(pictures.getType())) {
			whereSql += " and picture_type='" + pictures.getType() + "'";
		}
		return whereSql;
		
	}
应该改为这样的,
return Integer.valueOf(session.createQuery(
						"select count(alias) from " + clazz.getName()
								+ " as alias "+whereSql).uniqueResult()
						+ "");
private String spliceSql() {
		String whereSql = " where 1=1 ";

		if (user != null && user.getId() != null && !"".equals(user.getId())) {
			whereSql += " and picture.user.id=" + user.getId() + " ";
		}

		if (pictures != null && pictures.getType() != null
				&& !"".equals(pictures.getType())) {
			whereSql += " and picture.type='" + pictures.getType() + "'";
		}
		return whereSql;
		
	}
这样就对了。。谢谢大家的回帖
错了 错了,差点误导大家了,下边的picture.user.id,picture.type 应该改为user_id和picture_type
  • 打赏
  • 举报
回复
语法错误,hibernate会认为select count(*) from www.csdn.weibo.domain.Pictures点之间是类和对象的以及属性的关系,单写表名或者点改为下划线。
lvzg_005 2013-05-14
  • 打赏
  • 举报
回复
select count(*) from www.csdn.weibo.domain.Pictures where 1=1 and picture_type='aaa'; 如果是hql语句的话,Pictures 有这个属性picture_type吗? 咋看像是数据库的表字段
sgx425021234 2013-05-14
  • 打赏
  • 举报
回复
sgx425021234 2013-05-14
  • 打赏
  • 举报
回复
是这条啊,在dom里能执行查询啊。,。
sgx425021234 2013-05-14
  • 打赏
  • 举报
回复
终于找到问题了 原来是把createQuery和createSQLQuery弄混了,在baseDaoImpl.java 里边我原来写的是
return Integer.valueOf((session.createSQLQuery(
						" select count(*) from " + clazz.getName() + " "
								+ whereSql).uniqueResult() + ""));
在jsp中拼接sql语句中写的是
private String spliceSql() {
		String whereSql = " where 1=1 ";

		if (user != null && user.getId() != null && !"".equals(user.getId())) {
			whereSql += " and user_id=" + user.getId() + " ";
		}

		if (pictures != null && pictures.getType() != null
				&& !"".equals(pictures.getType())) {
			whereSql += " and picture_type='" + pictures.getType() + "'";
		}
		return whereSql;
		
	}
应该改为这样的,
return Integer.valueOf(session.createQuery(
						"select count(alias) from " + clazz.getName()
								+ " as alias "+whereSql).uniqueResult()
						+ "");
private String spliceSql() {
		String whereSql = " where 1=1 ";

		if (user != null && user.getId() != null && !"".equals(user.getId())) {
			whereSql += " and picture.user.id=" + user.getId() + " ";
		}

		if (pictures != null && pictures.getType() != null
				&& !"".equals(pictures.getType())) {
			whereSql += " and picture.type='" + pictures.getType() + "'";
		}
		return whereSql;
		
	}
这样就对了。。谢谢大家的回帖

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧