1
votes

i'm not able to fetch the result, create query is getting executed but the after that converting that into list is not working. please help me to resolve this problem. why it is not getting converted into list i'm not able to fetch the result, create query is getting executed but the after that converting that into list is not working. please help me to resolve this problem. why it is not getting converted into list

Tablescript

CREATE TABLE Answer(
answerId   INTEGER,
questionId   INTEGER NOT NULL,
userId varchar2(40) NOT NULL,
answerString VARCHAR2(400) NOT NULL,
CONSTRAINT pk_Answer_answerId PRIMARY KEY(answerId)
);

bean class

public class Answer {
private Integer answerId;
private Integer questionId;
private String userId;
private String answerString;
private String message;

public Integer getAnswerId() {
    return answerId;
}

public void setAnswerId(Integer answerId) {
    this.answerId = answerId;
}

public String getAnswerString() {
    return answerString;
}

public void setAnswerString(String answerString) {
    this.answerString = answerString;
}

public String getMessage() {
    return message;
}

public void setMessage(String message) {
    this.message = message;
}

public Integer getQuestionId() {
    return questionId;
}

public void setQuestionId(Integer questionId) {
    this.questionId = questionId;
}

public String getUserId() {
    return userId;
}

public void setUserId(String userId) {
    this.userId = userId;
}}

controller method is:

$scope.tagForm.getAnswer = function(val) {
    alert("hi");
    window.location = "#/answer";
    $scope.tagForm.ans = null;
    var data = JSON.stringify($scope.tagForm);
    $http.post(URI + "tag/ans/"+val,data).then(function(response) {
        alert("hey");
        //var string=response.data;
        //var formattedString = string.join("\n");
        //$scope.askForm.message =formattedString;
        $scope.tagForm.ans =response.data;
        //alert($scope.tagForm.message);
    }, function(response) {
        $scope.tagForm.message = null;
    });
    };



@SuppressWarnings({ "unchecked", "unused" })
public Map<Integer, String> getAnswer(Integer question) throws Exception {
    Map<Integer, String> quesString = null;
    SessionFactory sessionFactory = null;
    Session session = null;
    List<AnswerEntity> custList1 = new ArrayList<AnswerEntity>();
    try {
        quesString = new LinkedHashMap<Integer, String>();
        sessionFactory = HibernateUtility.createSessionFactory();
        session = sessionFactory.openSession();
        AnswerEntity tag = new AnswerEntity();
        // Question q=new Question();
        // q.setTagId(question);
        // ques.setQuestionString(question.getQuestionString());
        System.out.println("dao" + question);

        // session.persist(ques);

        // session.getTransaction().begin();
        System.out.println("before query exec");
        Query query = session
                .createQuery("from AnswerEntity where questionId=?");
        query.setInteger(0, question);
        System.out.println(query);
        System.out.println("after query exec");
        custList1 = query.list();
        System.out.println(custList1.size());
        // List list = query.list();
        for (AnswerEntity tagEntity : custList1) {
            // System.out.println("Question ID=>"+tagEntity.getQuestionId()+"\nQuestion String=>"+tagEntity.getQuestionString());
            // List<String> newList = new ArrayList<String>();
            Answer a = new Answer();
            a.setQuestionId(tagEntity.getQuestionId());
            a.setAnswerString(tagEntity.getAnswerString());
            // newList.addAll(getTag(tagEntity.getQuestionId()));
            // String a=String.valueOf(tagEntity.getQuestionId());
            quesString.put(a.getQuestionId(), a.getAnswerString());

            // quesString.add(a);
            // quesString.addAll(newList);

        }
        // session.getTransaction().commit();

    } catch (HibernateException exception) {
        exception.printStackTrace();
        DOMConfigurator.configure("src/com/infy/resources/log4j.xml");
        Logger logger = Logger.getLogger(this.getClass());
        logger.error(exception.getMessage(), exception);
        throw new Exception("DAO.TECHNICAL_ERROR");
    } catch (Exception exception) {
        exception.printStackTrace();
        DOMConfigurator.configure("src/com/infy/resources/log4j.xml");
        Logger logger = Logger.getLogger(this.getClass());
        logger.error(exception.getMessage(), exception);
        throw exception;
    } finally {
        if (session.isOpen() || session != null) {
            session.close();
        }
    }
    return quesString;
}

errorlog

org.hibernate.exception.SQLGrammarException: could not extract ResultSet at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:80) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112) at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:91) at org.hibernate.loader.Loader.getResultSet(Loader.java:2066) at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1863) at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1839) at org.hibernate.loader.Loader.doQuery(Loader.java:910) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355) at org.hibernate.loader.Loader.doList(Loader.java:2554) at org.hibernate.loader.Loader.doList(Loader.java:2540) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2370) at org.hibernate.loader.Loader.list(Loader.java:2365) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:497) at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387) at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236) at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1300) at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103) at com.infy.dao.TagDAOImpl.getAnswer(TagDAOImpl.java:122) at com.infy.service.TagServiceImpl.getAnswer(TagServiceImpl.java:55) at com.infy.api.TagAPI.fetchTagList2(TagAPI.java:65) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:317) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:267) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:298) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:471) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:425) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:383) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:336) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:223) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:957) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1079) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:620) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) Caused by: java.sql.SQLSyntaxErrorException: ORA-00904: "ANSWERENTI0_"."MESSAGE": invalid identifier

AnswerEntity Class

public class AnswerEntity {
@Id
@GeneratedValue(generator = "generatorName")
private Integer answerId;
private Integer questionId;
private String userId;
private String answerString;
private String message;

public Integer getAnswerId() {
    return answerId;
}

public void setAnswerId(Integer answerId) {
    this.answerId = answerId;
}

public String getAnswerString() {
    return answerString;
}

public void setAnswerString(String answerString) {
    this.answerString = answerString;
}

public String getMessage() {
    return message;
}

public void setMessage(String message) {
    this.message = message;
}

public Integer getQuestionId() {
    return questionId;
}

public void setQuestionId(Integer questionId) {
    this.questionId = questionId;
}

public String getUserId() {
    return userId;
}

public void setUserId(String userId) {
    this.userId = userId;
}}
1
What is AnswerEntity? Please provide code for it also.Ivan
You should provide an error log of exception and versions of hibernate you use.Lev

1 Answers

1
votes

You have property message in your entity class but you do not have corresponding column in database. This is clearly identified in stack trace:

ORA-00904: "ANSWERENTI0_"."MESSAGE": invalid identifier

You need either to create column if you want to store that information in the database or remove it from your entity class or mark it with @Transient to ask hibernate to ignore it in SQL queries like in this question: Make hibernate ignore class variables that are not mapped