spring自带hibernate 提交事务问题 saveorupdate(user); 有没有配置方法 让这句话执行后立即发sql  我在下边想获取user在数据库的id  

解决方案 »

  1.   

    执行完后再用你的user就有ID属性了。
      

  2.   

    因为你的USER已经去过持久态!!个人认为已经ID已经不为空拉!
      

  3.   

    是这样的,hibernate在执行save的时候,需要看你配置的主键策略是什么,如果是assign,代表是预先,这样你需要插入数据库以后,事务提交了才能获得id,如果你配置的是uuid,你可以再save得时候获得id,不需要在执行事务的时候获得,还有native,是按照本地策略执行主键策略。具体你可以查相关api
      

  4.   

    你可以用hibernate中自带的方法,findbyXXX()取获取刚刚插入数据的ID
    List list=IDAO的名字.findbyXXX();
    Iterator it=list.iterator();
    DAO的名字 变量名=(DAO的名字) it.next();
    你的ID id=变量名.getid();
      

  5.   

    6楼 谢谢了
    我就是想知道怎么立即提交事务。我id生成策略是assign
      

  6.   

    提交有两种,1。spring里配置aop
    2。直接在代码上写,例:Session session = xxxDAO.getStoreSession();
    Transaction tx = session.beginTransaction();session.save(XXXXX);//提交
    tx.commit();