配置文件 applicationContext.xml:<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@192.168.0.165:1521:oradb" />
<property name="username" value="idinfo" />
<property name="password" value="idinfo" />
</bean><bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource"><ref bean="dataSource" /></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
</props>
</property>
<property name="annotatedClasses">
<list>
<value>com.tseal.persistence.Seal</value>
</list>
</property>
</bean>实体类 Seal :@Table(name = "tb_seal", catalog = "etseal")
public class Seal 
{
        @Id 
        @GeneratedValue(strategy = IDENTITY) 
        @Column(name="id",length=40) 
        public Integer getId()
        { 
            return this.id;
        }
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "createDate", nullable = false, length = 19)
public Date getCreateDate()
{
return this.createDate;
}

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "updateDate", nullable = false, length = 19)
public Date getUpdateDate()
{
return this.updateDate;
}

@Column(name = "imgName", nullable = false, length = 75)
public String getImgName()
{
return this.imgName;
}


@Column(name = "thumbnail", nullable = false, length = 75)
public String getThumbnail()
{
return this.thumbnail;
}

@Column(name = "createUser", length = 20)
public String getCreateUser()
{
return this.createUser;
}

@Column(name = "updateUser", length = 20)
public String getUpdateUser()
{
return this.updateUser;
}

@Column(name = "sealName", nullable = false, length = 75)
public String getSealName()
{
return this.sealName;
}

@Column(name = "activesStatus", length = 1)
public String getActivesStatus()
{
return this.activesStatus;
}


@Column(name = "isRemote", length = 1)
public String getIsRemote()
{
return this.isRemote;
}

@Column(name = "width", length = 5)
public String getWidth()
{
return this.width;
}

@Column(name = "height", length = 5)
public String getHeight()
{
return this.height;
}
}DAO 类:    String queryString= "select count(*) from Seal seal where seal.activesStatus = 1 order by seal.updateDate desc";    List list = getHibernateTemplate().find(queryString);
执行  getHibernateTemplate().find(queryString) 时报:Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
Caused by: java.sql.SQLException: ORA-00942: table or view does not exist这个错误。请问这可能是什么问题?

解决方案 »

  1.   

    不能执行查询  是不是数据库中的某一个数据不规范啊  我用mysql出现过这样的问题  不过oracle没用过  不会是配置文件的问题  配置文件出错不会报这的   配置文件和实体类应该没事  你用的是tomcat吗?  如果用的是tomcat建议配置一下打印日志的文件  看看执行到那错了
      

  2.   

    Caused by: org.hibernate.exception.SQLGrammarException: could not execute query
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.loader.Loader.doList(Loader.java:2223)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
    at org.hibernate.loader.Loader.list(Loader.java:2099)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
    at org.springframework.orm.hibernate3.HibernateTemplate$30.doInHibernate(HibernateTemplate.java:926)
    at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
    ... 120 more
    Caused by: java.sql.SQLException: ORA-00942: table or view does not exist at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:799)
    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1039)
    at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:839)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1132)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3329)
    at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
    at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
    at org.hibernate.loader.Loader.doQuery(Loader.java:674)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
    at org.hibernate.loader.Loader.doList(Loader.java:2220)
    ... 129 more
      

  3.   

    我原先是用 Mysql 的没问题,后来换成 Oracle 就出现这个问题了
      

  4.   

    Caused by: java.sql.SQLException: ORA-00942: table or view does not exist
    说你表不存在,看看数据库有没有@Table(name = "tb_seal", catalog = "etseal")这张表