zoukankan      html  css  js  c++  java
  • 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;
        }
    
    }
  • 相关阅读:
    flask 基础
    新的项目部署
    linux (01) linux基础
    linux (04) linux安装mysql
    linux (06) redis安装
    linux (09) nginx反向代理,负载均衡
    linux (08) nginx入门详解
    linux (07) redis详解
    linux(05) 编译安装py3
    spring-boot war包部署(二)
  • 原文地址:https://www.cnblogs.com/wuyou/p/3687283.html
Copyright © 2011-2022 走看看