码迷,mamicode.com
首页 > Web开发 > 详细

hibernate dynamic-update="true" 的一点应用

时间:2017-03-10 20:36:25      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:需要   turn   dex   image   tac   logs   username   rac   declared   

dao层代码

     public void test(User user) throws  Exception{
            User user1=(User)findById(user.getId());
            user1.setName(user.getName());
            user1.setIsAdmin(user.getIsAdmin());
            user1.setTelephone(user.getTelephone());
            user1.setPassword(user.getPassword());
            user1.setUsername(user.getUsername());
        }

  biz层(因为使用的是hibernate的getCurrentSession()方法 所以所有的操作都需要提交事务

 private User methodFactory(String methodName,Class<?>[] dataType,Serializable...params) throws NoSuchMethodException{
       Class<?> userClass=UserDao.class;
        Method method = userClass.getDeclaredMethod(methodName,dataType);
        Transaction transaction=null;
        User user=null;
        try{
            transaction=HibernateSessionFactory.getSession().beginTransaction();
            user=(User)method.invoke(userClass.newInstance(),params);
            transaction.commit();
        }catch(Exception e){
            System.out.println("execute sql filed!");
            e.printStackTrace();
            if(transaction!=null)
                transaction.rollback();
        }
        return user;
    }

public void test(User user)throws  Exception{
        methodFactory("test",new Class[]{User.class},user);
    }

  技术分享

<hibernate-mapping>
    <class name="po.User" table="users" dynamic-update="true" >

  如果是开启了动态更新 那么你在commit之前select到的bean对象,这时再次set不同值进去

  然后commit,hibernat会自动判断如果新set的值有变化 那么会执行update操作,那么此时这个

  dynamic-update="ture" 就表示只update有变化的项,而false默认是全部字段更新

hibernate dynamic-update="true" 的一点应用

标签:需要   turn   dex   image   tac   logs   username   rac   declared   

原文地址:http://www.cnblogs.com/wyhgo/p/6532869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!