彭老师:您好!关于JF中数据查询更新问题/分页问题,麻烦您在百忙中指点迷津。多谢!

彭老师:
您好!
我在学习使用JF中(jboss)有如下几个问题,特此向您请教一下:
一、关于JF中数据查询更新问题:
1、同一应用中,在页面对一个表成功增加一条记录后(后台数据库也看到了),在另一处关联查询中,没有该记录?
2、同一应用中,在后台数据库直接或者通过JDBC在页面对一个表成功增加一条记录后(后台数据库也看到了),在另一处关联查询中,没有该记录?
上述两种情况下,重启JBOSS后,一切正常,该是CACHE相关问题,请教(对JF和JBOSS)该如何调整?
二、关于JF中分页问题:
1、条件固定时:(如下一切正常)
MultiPages:pager actionFormName="orderListForm" page="/orderListAction2.do?where=(order_is_valid='0')&order=(order_datetime,order_id)"> <MultiPages:prev name="[上页 ]" /> MultiPages:index /> <MultiPages:next name="[下页 ]" /> /MultiPages:pager>
2、条件不固定变化时:该如何处理?而且同在一页面中,入口有默认的固定条件,之后条件总在变化(多条件查询页面)。
选择多条件之后点击查询后,首页符和条件,来回翻页就不是条件结果了,就是MultiPages中写的条件了,如何把动态条件和MultiPages结合起来,最好不用GET方式,用POST方式。

麻烦彭老师在百忙中指点迷津,初学敬请详细些。
多谢!

>1、同一应用中,在页面对一个表成功增加一条记录后(后台数据库也看到了),在另一处关联查询中,没有该记录?

可能会,在增加记录的语句后面,调用"关联查询"中的pageIterator的clear方法。

>2、同一应用中,在后台数据库直接或者通过JDBC在页面对一个表成功增加一条记录后(后台数据库也看到了),在另一处关联查询中,没有该记录?

道理同上,需要清除缓存,或者直接调用CacheManager的clear清除。

>如何把动态条件和MultiPages结合起来,最好不用GET方式,用POST方式。
MultiPages语句中可加入动态变量,通过


page='/orderListAction2.do<%=""+i+""%>'

等实现。

如果要使用post方式,可先提交给一个action,然在struts-config.xml的action项目的forward中直接转向到批量显示/orderListAction2.do。
实际是多个action串在一个请求中。

还可以通过继承JF的MultiPages,加入自己的定义,扩展该标签库。

等等,以上手段基本可应付大多数需求,有问题请再提出。

彭老师:
您好!
谢谢百忙中的解惑!
我在学习使用JF中(jboss)又遇到一个问题,就是关于JF中批量删除问题,特此再向您请教一下:
问题概述:
单个删除是没有任何问题的,log显示如下:
2006-04-26 11:16:14,124 DEBUG [com.jdon.aop.reflection.ProxyMethodInvocation] target:com.jdon.dataadmin.service.TestServicePOJOImp service's method:deleteOrder running..
2006-04-26 11:16:14,124 DEBUG [com.jdon.aop.reflection.ProxyMethodInvocation] it is pojo target service
2006-04-26 11:16:14,124 DEBUG [com.jdon.model.query.JdbcTemp] --> enter getSingleObject
2006-04-26 11:16:14,124 DEBUG [com.jdon.model.query.JdbcTemp] delete from order where id in (?)
2006-04-26 11:16:14,124 DEBUG [com.jdon.model.query.JdbcUtil] parameter 1 is 3
2006-04-26 11:16:14,124 DEBUG [com.jdon.controller.cache.CacheManager] <-cache->remove the object of PageIteratorPageIteratorSolverKEYSCOUNTselect count(1) from order from cache
2006-04-26 11:16:14,124 DEBUG [com.jdon.controller.cache.CacheManager] <-cache->remove the object of PageIteratorPageIteratorSolverKEYSselect id from order from cache
2006-04-26 11:16:14,124 DEBUG [com.jdon.dataadmin.service.TestServicePOJOImp] delete ok!
2006-04-26 11:16:14,124 DEBUG [com.jdon.aop.reflection.MethodInvokerUtil] method invoke successfully
2006-04-26 11:16:14,124 DEBUG [com.jdon.aop.interceptor.PoolInterceptor] realease a object:com.jdon.dataadmin.service.TestServicePOJOImp to pool
2006-04-26 11:16:14,140 DEBUG [com.jdon.model.handler.HandlerObjectFactory] --> return Modelhandler instance successfullycom.jdon.model.handler.XmlModelHandler10
2006-04-26 11:16:14,140 DEBUG [com.jdon.strutsutil.ModelSaveAction] save successfully ...

批量(如一个以上)删除功能显示成功,但是数据库中,并没有真正删除,查询log显示如下(也和单个删除日志一样正常,把日志中的sql语句单独在数据库工具中执行也是正常能成功删除其数据的):

2006-04-26 11:12:36,312 DEBUG [com.jdon.aop.reflection.ProxyMethodInvocation] target:com.jdon.dataadmin.service.TestServicePOJOImp service's method:deleteOrder running..
2006-04-26 11:12:36,312 DEBUG [com.jdon.aop.reflection.ProxyMethodInvocation] it is pojo target service
2006-04-26 11:12:36,312 DEBUG [com.jdon.model.query.JdbcTemp] --> enter getSingleObject
2006-04-26 11:12:36,312 DEBUG [com.jdon.model.query.JdbcTemp] delete from order where id in (?)
2006-04-26 11:12:36,312 DEBUG [com.jdon.model.query.JdbcUtil] parameter 1 is 3,2
2006-04-26 11:12:36,312 DEBUG [com.jdon.controller.cache.CacheManager] <-cache->remove the object of PageIteratorPageIteratorSolverKEYSCOUNTselect count(1) from order from cache
2006-04-26 11:12:36,328 DEBUG [com.jdon.controller.cache.CacheManager] <-cache->remove the object of PageIteratorPageIteratorSolverKEYSselect id from order from cache
2006-04-26 11:12:36,328 DEBUG [com.jdon.dataadmin.service.TestServicePOJOImp] delete ok!
2006-04-26 11:12:36,328 DEBUG [com.jdon.aop.reflection.MethodInvokerUtil] method invoke successfully
2006-04-26 11:12:36,328 DEBUG [com.jdon.aop.interceptor.PoolInterceptor] realease a object:com.jdon.dataadmin.service.TestServicePOJOImp to pool
2006-04-26 11:12:36,328 DEBUG [com.jdon.model.handler.HandlerObjectFactory] --> return Modelhandler instance successfullycom.jdon.model.handler.XmlModelHandler10
2006-04-26 11:12:36,328 DEBUG [com.jdon.strutsutil.ModelSaveAction] save successfully ...

麻烦彭老师百忙中多多指教!
多谢!

>批量(如一个以上)删除功能显示成功,但是数据库中,并没有真正删除
这个问题我碰到过,主要是你数据类型不匹配导致:输入JdbcTemp的问号中的数据类型和你数据表这个字段的类型不一致,如输入是字符串,字段类型其实整数型。