首页 > 代码库 > hibernate dynamic-update="true" 的一点应用
hibernate dynamic-update="true" 的一点应用
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" 的一点应用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。