SSH框架中的一个HQL语句
我从ActionForm中得到数据,对ID采用自动递增的方式来实现.
存的时候这样写:hibernateTemplate().save(user);
可是这个user有一个字段barcode是根据id生成的其值为id+100000,在new User并对其赋值时由于数据还没存就不知道他的id值了也就不能为这个属性赋值了.我该怎么办呢>
我知道如果用SQL语句可以这样写:
String insert_sql = "insert into article values (null,0,?,?,?,now(),0)" ;
PreparedStatement pstmt = conn.prepareStatement(insert_sql,Statement.RETURN_GENERATED_KEYS);
Statement update_stmt = DB.getStmt(conn); pstmt.setInt(1,-1);
pstmt.setString(2,name);
pstmt.setString(3,password);
pstmt.executeUpdate();在SSH框架里用HQL语言或是用hibernateTemplate该怎么写呢,请高人指点!

解决方案 »

  1.   

    hibernateTemplatesave(user);
    这个时侯user.getId()就有值了。
    user.setBarcode(user.getId()+100000);
    save(user);
      

  2.   

    可以在ActionForm中对获取的当前id值,采用构造方法进行设值操作,如
    public class sForm extends ActionForm{
          private int id;
          private int barcode;
          //在构造方法中设置id和barcode的值
          public sForm(int id,int barcode){
             this.id = id + 1;
             this.barcode = this.id + 100000;
          }     /*以下为属性的setter,getter方法*/
         ..................................
    }
      

  3.   

    gvc068932 
    是高手呵呵  
     liuzide365 没看懂我的意思啊,谢谢你们了