SJH分页中添加的数据无法保存

07-11-21 ccj
使用SJH的CRUD+分页的例子,配置成功后运行没有问题,在页面上添加数据后分页也能即时更新,数据库中也有新记录。

但是在该工程中加入一个新的model:Item,依照标准方法添加dao,service和配置,却发现在添加数据后,分页中能看到新数据,可一刷新就变回原来的2条,再次刷新又变成3条,并且数据库中没有新记录产生,查看save时的日志也没有发现有错误,不知道为什么没有将数据写进数据库,只写进了缓存中呢。

PS:由于新例子和原例都在一个工程中,共用一些配置文件,应该排除配置问题。

ccj
2007-11-21 14:51
刷新时能看到日志 ,刷新一次为3,再刷一次就是2

DEBUG com.jdon.strutsutil.ModelListAction - [JdonFramework]

listForm 's property: getList size is 3

DEBUG com.jdon.strutsutil.ModelListAction - [JdonFramework] listForm 's property: getList size is 2

banq
2007-11-21 19:54
注意新的Model的主键类型,getList()中有可能是其他Model,你使用Eclipse的断点跟踪,打开getList中的List看看是什么Model

ccj
2007-11-22 09:14
经调试,发现在新的service中的

public void update(EventModel em)

这里em中的model的id,name等字段都是null,于是用5.1的源代码调试,想看看在em.setModelIF(model);这里是不是有值,但用jdon5.1源代码时,又遇到了这个错误

07-11-22 9:05:33 [Debug:Error] com.jdon.aop.AopClient

07-11-22 9:05:33 [Debug:Error] Received throwable:

java.lang.NullPointerException

at java.util.ArrayList.addAll(ArrayList.java:474)

at com.jdon.aop.joinpoint.AdvisorChainFactory.create(AdvisorChainFactory.java:58)

banq
2007-11-22 11:18
全部重新清理一遍。

ccj
2007-11-22 11:18
经调试发现只要将新model的id设为int就不会出现这个问题了(原来为Integer),不明白为什么当id为Integer类型时,调试中的getcache出来就是id=null

但目前还有一个问题,就是数据还是没有在数据库中改变,只是缓存里正常了。

ccj
2007-11-22 11:49
现在的情况是:如果是添加数据,则还是刷新一次变一次(因为数据库和缓存中的数据不匹配),如果是修改数据,看上去是修改成功,数据库中仍然为原值。

猜你喜欢