互联网服务数据库javaSQL

java.sql.SQLException: Cannot add index.

求助:程序连接informix数据库的表:使用java程序 执行:StringBuffer sf=new StringBuffer();                sf.append("select new com.jy.pjbj.dto.manhour.EvalQuickDefaultUserDTO(a.id,a.qybm,a.qymc,a.bz) " +   ...显示全部
求助:程序连接informix数据库的表:
使用java程序 执行:
StringBuffer sf=new StringBuffer();
                sf.append("select new com.jy.pjbj.dto.manhour.EvalQuickDefaultUserDTO(a.id,a.qybm,a.qymc,a.bz) " +
                                "from PjZdQyzdBd a,PjZdQyzd xtqy " +
                                "where a.scbz = '0' and xtqy.scbz = '0' and a.xtqyId = xtqy.id ");
                sf.append(" order by a.qybm ");
                List returnList = pm.getList(sf.toString());
就报如下错误:

org.springframework.jdbc.UncategorizedSQLException: (Hibernate operation): encountered SQLException [Cannot add index.]; nested exception is java.sql.SQLException: Cannot add index.   
   关闭详细信息   
  定损单号:P001
[SystemError]:org.springframework.jdbc.UncategorizedSQLException: (Hibernate operation): encountered SQLException [Cannot add index.]; nested exception is java.sql.SQLException: Cannot add index.
[Message]:(Hibernate operation): encountered SQLException [Cannot add index.]; nested exception is java.sql.SQLException: Cannot add index.
[Cause]:java.sql.SQLException: Cannot add index.
org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.translate(SQLStateSQLExceptionTranslator.java:94)
org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:281)
org.springframework.orm.hibernate.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:249)
org.springframework.orm.hibernate.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:231)
org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:233)
org.springframework.orm.hibernate.HibernateTemplate.executeFind(HibernateTemplate.java:248)
com.jy.framework.persistence.hibernate.HibernatePersistenceManager.getList(HibernatePersistenceManager.java:108)
com.jy.pjbj.service.manhour.impl.ManagerServiceImpl.getCompanyList(ManagerServiceImpl.java:762)
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:585)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:154)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:121)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:56)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:143)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
$Proxy82.getCompanyList(Unknown Source)
com.jy.pjbj.web.action.manager.ManagerEditAction.execute(ManagerEditAction.java:65)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
------------

抓出Sql在数据库直接查询
select a.id,a.qybm,a.qymc,a.bz
from Pj_Zd_Qyzd_Bd a,Pj_Zd_Qyzd xtqy  
where a.scbz = '0' and xtqy.scbz = '0' and a.xtqyId = xtqy.id
                  order by a.qybm  
直接执行,可以正常查询,
高手帮忙给看下啊收起
参与7

查看其它 6 个回答feipig的回答

feipigfeipig软件架构设计师HCXT
以前听说过Hibernate访问的表都需要有主键的,加个主键试试.
系统集成 · 2010-10-28
浏览3274

回答者

feipig
软件架构设计师HCXT

feipig 最近回答过的问题

回答状态

  • 发布时间:2010-10-28
  • 关注会员:0 人
  • 回答浏览:3274
  • X社区推广