hibernate3.0 + eclipse开发的奇怪问题
BookDAO.java
-------------
...
public void save(Book transientInstance) {
Session session = null;
Transaction tx = null;
try {
session = this.getSession();
tx = session.beginTransaction();
session.save(transientInstance);
tx.commit();
log.debug( "save successful ");
} catch (RuntimeException re) {
log.error( "save failed ", re);
tx.rollback();
throw re;
}finally{
if(session != null)
{
session.close();
}
}
}
public void update(Book detachedInstance) {
Session session = null;
Transaction tx = null;
try {
session = this.getSession();
tx = session.beginTransaction();
session.update(detachedInstance);
tx.commit();
log.debug( "update successful ");
} catch (RuntimeException re) {
tx.rollback();
throw re;
}finally{
if(session != null)
{
session.close();
}
}
}
public Book findById( java.lang.String id) {
try {
Book instance = (Book) getSession()
.get( "bookStore.book ", id);
return instance;
} catch (RuntimeException re) {
throw re;
}
}
页面viewBook.jsp是:
序号 书名 价格 点击
1 jsp开发 20.0 55
...
现在我在程序里每次当用户点击这个书名时,执行代码为:
BookDAO bookDAO = new BookDAO();
Book b = bookDAO.findById(request.getParameter( "book_id "));
b.setViewTimes(b.getViewTimes() + 1);
bookDAO.update(b);
...
结果发现,当页面的点击数随着点击的次数增加时出现以下奇怪问题
1.比如viewBook.jsp页面现在为
序号 书名 价格 点击
1 jsp开发 20.0 55
...
点击进去,然后再通过导航链接访问viewBook.jsp发现,上面那行的点击次数仍为55,未改变。这种情况不是100%,有时会正常更新。
2.如果第一条中的正常,那么常会出现这种情况
序号 书名 价格 点击
1 jsp开发 20.0 58
...
点击进去一次,通过导航链接再访问viewBook.jsp,现在页面为
序号 书名 价格 点击
1 jsp开发 20.0 59
...
再点击进去一次,通过导航链接再访问viewBook.jsp,现在却回到
序号 书名 价格 点击
1 jsp开发 20.0 58
...
关了浏览器再来仍然是58.
我用的hibernate3.0,不知是我的DAO的update方法的问题,还是IE问题,这个奇怪的问题使我的项目无法完成,请各位帮忙。
[解决办法]
缓存的问题
[解决办法]
up
[解决办法]
你那数据库里面的值是多少啊??
要是数据库里面是正确的话
有可能缓存问题了
要是缓存问题也是TOMCAT的话把tomcat关了,然后删除work重启一下看看
[解决办法]
同意ls 的观点,顶一下