• Spring 与 Hibernate 集成 Transactional设置为只读


    @Transactional标签用于标记ServiceImpl使用事务,并且能够打开一个sessionFactory的session,并且打开事务。

    如果在这个标签为@Transactional(propagation = Propagation.NOT_SUPPORTED),就不打开session了,自然也不会打开事务,你要自己打开并且维护它,关闭session,在session范围内更改了对象的值,他也不会相应的更新到数据库中(前提是你没有打开事务)。

    @Service
    @Transactional
    public class MMCommentServiceImpl implements MMCommentService {
        @Resource
        private SessionFactory sessionFactory;
    
        //设置只读
        @Transactional(propagation = Propagation.NOT_SUPPORTED)
        @Override
        public List<MMComment> getCommentList(int id) {
            Session session =  sessionFactory.openSession();
            List<MMComment> list =session
                    .createQuery("from MMComment where image.id = :id order by zan desc")
                    .setMaxResults(8)//最多取几条,热门的
                    .setInteger("id", id)
                    .list();
            session.close();
            return list;
        }
    
    }
  • 相关阅读:
    第五周总结
    10.24号进度报告
    10.23日进度报告
    10.22日进度报告
    10.21日进度报告
    10.20号进度总结
    10.19日进度总结
    第四周总结
    10.18日进度博客
    2020下第六周总结
  • 原文地址:https://www.cnblogs.com/wuyou/p/3687283.html
Copyright © 2020-2023  润新知