2013-06-30 3 views
0

Невозможно прочитать данные из таблицы через спящий режим. Но тот же SQL работает в TOAD.Hibernate - невозможно прочитать значения из таблицы

SQL:

SELECT distinct pub.asdfg, pub.list, pub.prod, pub.prod_desc FROM Pubsh pub WHERE pub.prod in ('123456') 

Таблица Защиту:

CREATE TABLE "PUBSH" 
(
    KEY decimal(22) NOT NULL, 
    PROD varchar2(54) NOT NULL, 
    PRODKEY decimal(22), 
    PROD_DESC varchar2(360), 
    PARTEY decimal(22) NOT NULL, 
    LIST_TYPE varchar2(90), 
    PUBLISH_DATE date, 
    PUBSH_PERIOD varchar2(30) NOT NULL, 
    PL_KEY decimal(22), 
    LIST varchar2(750), 
    EL_KEY decimal(22), 
    NEL varchar2(60) } 

Ошибка в консоли: метод

org.hibernate.SQL - SELECT distinct pub.nel, pub.list, pub.prod, pub.prod_desc FROM PUBSH WHERE pub.prod in ('12345') 
     org.hibernate.jdbc.AbstractBatcher - about to open ResultSet (open ResultSets: 0, globally: 0) 
      org.hibernate.type.StringType - could not read column value from result set; Invalid column name 
     org.hibernate.jdbc.AbstractBatcher - about to close ResultSet (open ResultSets: 1, globally: 1) 
     org.hibernate.jdbc.AbstractBatcher - about to close PreparedStatement (open PreparedStatements: 1, globally: 1) 
    org.hibernate.util.JDBCExceptionReporter - could not execute query [SELECT distinct pub.nel, pub.list, pub.prodr, pub.desc FROM PUBSH WHERE pub.prod in ('12345')] 
    java.sql.SQLException: Invalid column name 
      at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3711) 
      at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:2806) 
      at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:498) 
      at weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl.getString(Unknown Source) 
      at org.hibernate.type.StringType.get(StringType.java:18) 
      at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163) 
      at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:189) 
      at org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.extract(CustomLoader.java:474) 
      at org.hibernate.loader.custom.CustomLoader$ResultRowProcessor.buildResultRow(CustomLoader.java:420) 
      at org.hibernate.loader.custom.CustomLoader.getResultColumnOrRow(CustomLoader.java:317) 
      at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:606) 

DAO для выполнения Hibernate:

public List<SearchResult> find(final String Query1) { 
     return (List<SearchResult>)getHibernateTemplate().execute(new HibernateCallback(){ 
     public Object doInHibernate(Session session) throws HibernateException{ 
      Query query1 = session.createSQLQuery(channelQuery1) 
            .addScalar("nel",Hibernate.STRING) 
            .addScalar("price",Hibernate.STRING) 
            .addScalar("prodr",Hibernate.STRING) 
            .addScalar("prodcr",Hibernate.STRING) 
            .setResultTransformer(Transformers.aliasToBean(SearchResult.class)); 

       return query1.list(); 
      } 

Пожалуйста, сообщите, почему я получаю недопустимую ошибку имени столбца при доступе к спящему спящему режиму?

+1

Какова ценность Query1? также активировать SQL-запрос журнала и посмотреть запрос, который выполняет hibernate – fmodos

+0

Query1 не выполнялся, я получал ошибку при выполнении hibernate и sql log, обновленных в разделе вопросов. – user2444474

+3

Пожалуйста, не удаляйте контент из своего вопроса таким образом, так как это сделает ответ казавшимся неуместным. Я не вижу ничего удаленного «конфиденциального». Когда вы отправляете сообщения, вы соглашаетесь с лицензией CC-WIKI для контента. –

ответ

1

Вы создаете запрос SQL, но скалярные свойства различны, чем один, объявленным в таблице:

.addScalar("prodNbr",Hibernate.STRING) 
.addScalar("prodDescr",Hibernate.STRING) 

эти свойства объявляются PROD_NBR и PROD_DESC в таблице, поэтому изменить код

.addScalar("CHANNEL",Hibernate.STRING) 
.addScalar("PRICELIST",Hibernate.STRING) 
.addScalar("PROD_NBR",Hibernate.STRING) 
.addScalar("PROD_DESC",Hibernate.STRING) 
Смежные вопросы