String logonsn = (String)session2.getAttribute("LOGONSN");
Integer assid = (Integer)session2.getAttribute("ASSID");
Session session = DBHandle.currentSession();
AssPersonuser person = (AssPersonuser)session.load(AssPersonuser.class,logonsn);
BeanUtils.copyProperties(person,personForm);
String idno = personForm.getIdno();
if(idno!=null&& idno.trim().length()==15){
person.setBirthday("19"+idno.substring(6, 12));
}else if(idno!=null&& idno.trim().length()==18){
person.setBirthday(idno.substring(6, 14));
}

List  list = new ArrayList();
Transaction tx =session.beginTransaction();
try{
session.flush();
tx.commit();
大家看,这段代码,是怎么保存的,没有session.save,怎么保存了
还有BeanUtils.copyProperties(person,personForm);
是什么意思呀

解决方案 »

  1.   

    AssPersonuser person = (AssPersonuser)session.load(AssPersonuser.class,logonsn);
    出来的对象处以持久态,对它的修改都能同步到数据库中Transaction tx =session.beginTransaction();                
            try{    
                session.flush();
                tx.commit();这段是必须写的 如果不写UPDATE不被提交
      

  2.   

    flush强制Hibernate将缓存中记录(持久状态的数据)的操作flush入数据库
      

  3.   

    session.flush();的功能是使hibernate一级缓存的内容与数据库同步
    还有BeanUtils.copyProperties(person,personForm); 是将personForm对象的属性 拷贝给person对象
      

  4.   

    AssPersonuser person = (AssPersonuser)session.load(AssPersonuser.class,logonsn); 
    出来的对象处以持久态,对它的修改都能同步到数据库中 Transaction tx =session.beginTransaction();                
            try{    
                session.flush(); 
                tx.commit();