配置文件 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这个错误。请问这可能是什么问题?
<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这个错误。请问这可能是什么问题?
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
说你表不存在,看看数据库有没有@Table(name = "tb_seal", catalog = "etseal")这张表