import org.javacoo.expand.jeecms.dao.WebSiteDao;
import org.javacoo.expand.jeecms.entity.WebSite;
import org.javacoo.spider.service.WebSiteService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jeecms.common.hibernate3.Updater;
import com.jeecms.common.page.Pagination;@Service
@Transactional
public class WebSiteServiceImpl implements WebSiteService
{
@Autowired
WebSiteDao dao; /**
 * @param pageNo
 * @param pageSize
 * @return Pagination
 */
@Transactional(readOnly = true)
public Pagination getPage(int pageNo, int pageSize)
{
Pagination page = dao.getPage(pageNo, pageSize);
return page;
} /**
 * @param WebSite bean
 * @return WebSite
 */
public WebSite save(WebSite bean)
{
dao.save(bean);
return bean;
} @Transactional(readOnly = true)
public WebSite findById(Integer id)
{
WebSite entity = dao.findById(id);
return entity;
} public WebSite update(WebSite bean)
{
Updater<WebSite> updater = new Updater<WebSite>(bean);
bean = dao.updateByUpdater(updater);
return bean;
} public WebSite deleteById(Integer id)
{
WebSite bean = dao.deleteById(id);
return bean;
} public WebSite[] deleteByIds(Integer[] ids)
{
WebSite[] beans = new WebSite[ids.length];
for (int i = 0, len = ids.length; i < len; i++)
{
beans[i] = deleteById(ids[i]);
}
return beans;
}
}
这里的 public WebSite save(WebSite bean) 可以
但是public WebSite update(WebSite bean)不行断点跟踪发现数据再变,但是,最终事务没有提交,数据不能修改!

解决方案 »

  1.   

    看下你在dao里面的dao.updateByUpdater(updater);方法
      

  2.   

    在update方法上面加上注解 @Transactional
      

  3.   

    用的是什么数据库?mysql默认不提交事务.
      

  4.   

    我用SSH框架的,也出现了这种问题。但最后解决办法是通过在Hibernate配置文件中添加自动提交的,网上说是缓存的问题。真心操蛋。<property name="connection.autocommit">true</property>