躺在沙灘上的小豬

          快樂的每一天

          一次類型轉換的錯誤

          RoomType和RoomState的主鍵是Integer,在get的時候忘記轉換為Integer了:

          ???????? this .getHibernateTemplate().execute( new ?HibernateCallback()?{
          ????????????
          public ?Object?doInHibernate(Session?session)? throws ?HibernateException?{
          ????????????????room.setType((RoomType)?session.get(RoomType.
          class ,?typeId));
          ????????????????room.setState((RoomState)?session.get(RoomState.
          class ,?stateId));
          ????????????????session.update(room);
          ????????????????
          return ? null ;
          ????????????}
          ????????});

          沒想到hibernate居然大動干做,拋出一大堆的exception

          java.sql.SQLException:?索引中丟失??IN?或?OUT?參數::?1
          ????at?oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:
          112)
          ????at?oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:
          146)
          ????at?oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:
          1681)
          ????at?oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:
          3280)
          ????at?oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:
          3329)
          ????at?org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:
          92)
          ????at?org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:
          139)
          ????at?org.hibernate.loader.Loader.getResultSet(Loader.java:
          1669)
          ????at?org.hibernate.loader.Loader.doQuery(Loader.java:
          662)
          ????at?org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:
          224)
          ????at?org.hibernate.loader.Loader.doList(Loader.java:
          2145)
          ????at?org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:
          2029)
          ????at?org.hibernate.loader.Loader.list(Loader.java:
          2024)
          ????at?org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:
          375)
          ????at?org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:
          308)
          ????at?org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:
          153)
          ????at?org.hibernate.impl.SessionImpl.list(SessionImpl.java:
          1129)
          ????at?org.hibernate.impl.QueryImpl.list(QueryImpl.java:
          79)
          ????at?org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:
          749)
          ????at?com.phopesoft.hms.room.service.impl.RoomServiceImpl$
          3.doInHibernate(RoomServiceImpl.java:151)
          ????at?org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:
          366)
          ????at?org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:
          334)

          這樣的錯誤真是讓我一點莫不著頭腦,還好從后臺打出的hql看到了錯誤的信息

          org.springframework.jdbc.UncategorizedSQLException:?Hibernate?operation:
          ?could?not?execute?query;?uncategorized?SQLException?
          for?SQL?[
          ?...
          ?SQL?state?[null];?error?code?[17041];?索引中丟失??IN?或?OUT?參數::1;
          ?nested?exception?is?java.sql.SQLException:?索引中丟失??IN?或?OUT?參數::?
          1

          不就是沒找到嗎,干嘛要這樣呢

          將String類型轉換為Integer就沒事了
          ????????this.getHibernateTemplate().execute(new?HibernateCallback()?{
          ????????????
          public?Object?doInHibernate(Session?session)?throws?HibernateException?{
          ????????????????room.setType((RoomType)?session.get(RoomType.
          class,?new?Integer(typeId)));
          ????????????????room.setState((RoomState)?session.get(RoomState.
          class,?new?Integer(stateId)));
          ????????????????session.update(room);
          ????????????????
          return?null;
          ????????????}
          ????????});

          posted on 2006-05-03 11:16 martin xus 閱讀(1213) 評論(0)  編輯  收藏

          主站蜘蛛池模板: 香河县| 岳阳市| 醴陵市| 苏尼特右旗| 盱眙县| 铅山县| 大邑县| 宣汉县| 松滋市| 泸州市| 江北区| 融水| 昆明市| 阿城市| 永年县| 鹤峰县| 乌海市| 湘潭市| 鞍山市| 英德市| 屏东市| 崇义县| 潞西市| 神池县| 阿拉善左旗| 武宣县| 攀枝花市| 辉南县| 开化县| 淮滨县| 平昌县| 南华县| 会宁县| 哈密市| 英吉沙县| 芷江| 湟中县| 上杭县| 镇赉县| 琼结县| 钟祥市|