我建表的时候是用的users,但用ant生成的xml文件就是user了,

解决方案 »

  1.   

    然后生成java文件的时候那个类名也变为User了
      

  2.   

    那你就该用这样的语句:
    from user即可注意,HQL里面是把对象(也就是你的类名)作为查找目标的,所以不要用表名
      

  3.   

    如果用from User 就出现表或视图不存在的错误了2006-5-11 7:01:33 net.sf.hibernate.util.JDBCExceptionReporter logExceptions警告: SQL Error: 942, SQLState: 420002006-5-11 7:01:33 net.sf.hibernate.util.JDBCExceptionReporter logExceptions严重: ORA-00942: 表或视图不存在
    2006-5-11 7:01:33 net.sf.hibernate.JDBCException <init>严重: SQLException initializing collectionjava.sql.SQLException: ORA-00942: 表或视图不存在
    at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:830) at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2391) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:527) at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:62) at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:537) at net.sf.hibernate.loader.Loader.doFind(Loader.java:140) at net.sf.hibernate.loader.Loader.loadCollection(Loader.java:586) at net.sf.hibernate.loader.CollectionLoader.initialize(CollectionLoader.java:82) at net.sf.hibernate.impl.SessionImpl.initialize(SessionImpl.java:2815) at net.sf.hibernate.collection.PersistentCollection.getInitialValue(PersistentCollection.java:128) at net.sf.hibernate.type.PersistentCollectionType.getCollection(PersistentCollectionType.java:71) at net.sf.hibernate.type.PersistentCollectionType.resolveIdentifier(PersistentCollectionType.java:171) at net.sf.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:1962) at net.sf.hibernate.loader.Loader.doFind(Loader.java:196) at net.sf.hibernate.loader.Loader.find(Loader.java:604) at net.sf.hibernate.hql.QueryTranslator.find(QueryTranslator.java:912) at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1356) at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1335) at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1327) at youthbookstore.struts.UserManager.getAll(UserManager.java:18) at youthbookstore.struts.UserManager.main(UserManager.java:40)java.sql.SQLException: ORA-00942: 表或视图不存在 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:830) at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2391) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:527) at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:62) at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:537) at net.sf.hibernate.loader.Loader.doFind(Loader.java:140) at net.sf.hibernate.loader.Loader.loadCollection(Loader.java:586) at net.sf.hibernate.loader.CollectionLoader.initialize(CollectionLoader.java:82) at net.sf.hibernate.impl.SessionImpl.initialize(SessionImpl.java:2815) at net.sf.hibernate.collection.PersistentCollection.getInitialValue(PersistentCollection.java:128) at net.sf.hibernate.type.PersistentCollectionType.getCollection(PersistentCollectionType.java:71) at net.sf.hibernate.type.PersistentCollectionType.resolveIdentifier(PersistentCollectionType.java:171) at net.sf.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:1962) at net.sf.hibernate.loader.Loader.doFind(Loader.java:196) at net.sf.hibernate.loader.Loader.find(Loader.java:604) at net.sf.hibernate.hql.QueryTranslator.find(QueryTranslator.java:912) at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1356) at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1335) at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1327) at youthbookstore.struts.UserManager.getAll(UserManager.java:18) at youthbookstore.struts.UserManager.main(UserManager.java:40)rethrown as net.sf.hibernate.JDBCException: SQLException initializing collection: ORA-00942: 表或视图不存在 at net.sf.hibernate.impl.SessionImpl.initialize(SessionImpl.java:2818) at net.sf.hibernate.collection.PersistentCollection.getInitialValue(PersistentCollection.java:128) at net.sf.hibernate.type.PersistentCollectionType.getCollection(PersistentCollectionType.java:71) at net.sf.hibernate.type.PersistentCollectionType.resolveIdentifier(PersistentCollectionType.java:171) at net.sf.hibernate.impl.SessionImpl.initializeEntity(SessionImpl.java:1962) at net.sf.hibernate.loader.Loader.doFind(Loader.java:196) at net.sf.hibernate.loader.Loader.find(Loader.java:604) at net.sf.hibernate.hql.QueryTranslator.find(QueryTranslator.java:912) at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1356) at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1335) at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1327) at youthbookstore.struts.UserManager.getAll(UserManager.java:18) at youthbookstore.struts.UserManager.main(UserManager.java:40)Caused by: java.sql.SQLException: ORA-00942: 表或视图不存在 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289) at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573) at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891) at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:830) at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2391) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2672) at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:527) at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:62) at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:537) at net.sf.hibernate.loader.Loader.doFind(Loader.java:140) at net.sf.hibernate.loader.Loader.loadCollection(Loader.java:586) at net.sf.hibernate.loader.CollectionLoader.initialize(CollectionLoader.java:82) at net.sf.hibernate.impl.SessionImpl.initialize(SessionImpl.java:2815) ... 12 more
      

  4.   

    检查 User.hbm.xml, 找出User的Mapping定义,像下面这样的:<class name="User" table="users" ... >看里面指定的table是否为users?
      

  5.   

    也就只有users表有这个错误,其他的表中带s的类没带s都可以,然后在数据库里改名字将users改为user是不能改的,可能是,那是系统默认有的表名,就像level字段一样,然后我将users表改成storeusers,一切都正常了。