jfinal的dao分页方法table_alias where table_alias.rownum_ >=添加之后查询不出来,删掉这句就能出结果

Java_weber 发布于 2014/04/02 09:48
阅读 405
收藏 0
我数据库是两张表关联起来,增加了条件之后只能查询出来一条数据,但是jfinal后台自动发送的分页语句查询不出来,拿SQL直接到数据库查询,删掉table_alias
 where table_alias.rownum_ >=就可以正常查询出结果,什么情况。
加载中
0
JFinal
JFinal

贴出具体代码

Java_weber
Java_weber
嗯嗯~
JFinal
JFinal
回复 @学JAVA的大仁哥 : 别忘了回来分享哈 ^_^
Java_weber
Java_weber
我发现错误了,不是框架的问题,而是我分页的问题,我只有一条数据,结果查询的是第二页的内容。。。。。我错了,不好意思~~
JFinal
JFinal
回复 @学JAVA的大仁哥 : 调试到 paginate 方法中去,看一下生成的最终 sql 是什么样子,然后将后成的 sql 去数据库控制台执行一下
Java_weber
Java_weber
SQL回复到楼下了,之后改用dao.find问号挂参就能查询出来了,之前dao.paginate就不行。
0
Java_weber
Java_weber

我的sql是这样的

select *
  from (select row_.*, rownum rownum_
          from (select qh.question_title  qtitle,
                       qh.question_desc   qdesc,
                       qh.question_result qresult,
                       qh.browse_number   qbrowse,
                       qh.created_by      qcreated_by,
                       qh.creation_date   qcreation_date,
                       ql.question_result aresult,
                       ql.created_by      acreated_by,
                       ql.creation_date   acreation_date,
                       ql.agree_number    aagree_number,
                       ql.oppose_number   aoppose_number
                  from question_head qh, question_line ql
                 where qh.question_head_id = ql.question_head_id
                   and qh.question_head_id = 2
                 order by ql.creation_date desc) row_
         where rownum <= 36) table_alias
 where table_alias.rownum_ >= 19

JFinal
JFinal
项目中的代码如何使用这段 sql 呢?
0
Java_weber
Java_weber

引用来自“JFinal”的评论

贴出具体代码

回复 @JFinal : 又出现问题了,我Answer answer2 = new Answer();
answer2.set("question_line_id","sq_question_line.nextval").set("question_head_id",question_head_id)

.set("question_result", answer).save();

提示The attribute name is not exists: question_line_id

2014-4-2 15:56:05 com.jfinal.core.ActionHandler error
严重: /question/commit
com.jfinal.plugin.activerecord.ActiveRecordException: The attribute name is not exists: question_line_id
    at com.jfinal.plugin.activerecord.Model.set(Model.java:79)
    at com.knowleagebase.model.Answer.setAnswer(Answer.java:27)
    at com.knowleagebase.cotroller.QuestionController.commit(QuestionController.java:33)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.jfinal.core.ActionInvocation.invoke(ActionInvocation.java:55)
    at com.jfinal.ext.interceptor.SessionInViewInterceptor.intercept(SessionInViewInterceptor.java:44)
    at com.jfinal.core.ActionInvocation.invoke(ActionInvocation.java:51)
    at com.jfinal.core.ActionHandler.handle(ActionHandler.java:73)
    at com.jfinal.plugin.druid.DruidStatViewHandler.handle(DruidStatViewHandler.java:74)
    at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
    at org.eclipse.jetty.server.Server.handle(Server.java:365)
    at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
    at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:937)
    at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:998)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
    at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
    at java.lang.Thread.run(Thread.java:619)

model里面的方法是这样的:

public boolean setAnswer(int question_head_id,String answer){
        Answer answer2 = new Answer();
        Boolean okBoolean = false;
        okBoolean = answer2.set("question_line_id", "sq_question_line.nextval").set("question_head_id", question_head_id).set("question_result", answer).set("created_by", "黄海生").save();
        Question question = new Question();
        Boolean ok2 = false;
        ok2 = question.findById(question_head_id).set("question_result", answer).update();
        return (okBoolean==true&&ok2==true);
    }

Java_weber
Java_weber
回复 @backtract : 字段没错的,我是从数据库复制字段名过来的,可以拿到,但是set不了
backtract
backtract
很明白的告诉你了提示The attribute name is not exists: question_line_id,question_line_id 这个字段不存在。检查是不是字段名字写错了
返回顶部
顶部