大家好!
    小弟求教了!
    两个类A和B,A的主键id和B表中得a_id在数据库是关联关系。
    我要做一个操作,新增一个A对象,再批量修改,给B表中a_id插入A对象的id,以下就是我的写法
    A  a= new A();
    a.setId(通过主键生成器先获得);
    this.getHibernateTemplate().save(a);
    this.getHibernateTemplate().flush();
    this.getHibernateTemplate().clear();
    StringBuffer hql = new StringBuffer();
    hql.append("update B set a_id=").append(a.getId);
    this.getHibernateTemplate().bulkUpdate(hql.toString());    然后我bug发现,断点通过this.getHibernateTemplate().clear()的时候A对象并未持久化到数据库,然后断点到最后一句,我在PLsql执行hql.toString(),报错parent key not found。
    请问以下,为什么flush,clear以后对象a没有持久化到数据库?

解决方案 »

  1.   

    高手们,赐教啊!!!小弟很迷茫啊,两个sql,好像在数据库执行的时候,永远先执行了批量修改而不是插入,所以执行不了
      

  2.   

    你何不先用个变量接住那个“通过主键生成器先获得”key,然后使用那个变量去操作呢。
      

  3.   

    flush的时候已经是persist到数据库了。已经detached。我猜你这里头不单单是一个对象吧。有casecade的吧。所以才会出现parent key not found。这个东东。