hibernate update单个字段

  Hibernate 中如果直接使用

  Session.update(Object o);

  会把这个表中的所有字段更新一遍。

  比如:

@Column(updatable=false)     
    public int getAge() {     
        return age;     
    }    
   

  我们在执行 Update方法会发现,age 属性 不会被更改

Hibernate:      
    update     
        Teacher      
    set     
        birthday=?,     
        name=?,     
        title=?      
    where     
        id=?    
   

   缺点:不灵活····

  2.第2种方法··使用XML中的 dynamic-update="true"


 

public void update(){  
  Session session =  HibernateUitl.getSessionFactory().getCurrentSession();  
  session.beginTransaction();  
  Query query = session.createQuery("update Teacher t set t.name = 'yangtianb' where id = 3");  
  query.executeUpdate();  
  session.getTransaction().commit();  
 }   
   

  Hibernate 执行的SQL语句:

Hibernate:   
    update  
        Teacher   
    set  
        name='yangtianb'   
    where  
        id=3  
   

  

这样就只更新了我们更新的字段······

相关推荐