hibernate批量修改的问题
大家好!
小弟求教了!
两个类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没有持久化到数据库?
------解决方案--------------------
你何不先用个变量接住那个“通过主键生成器先获得”key,然后使用那个变量去操作呢。
------解决方案--------------------
flush的时候已经是persist到数据库了。已经detached。我猜你这里头不单单是一个对象吧。有casecade的吧。所以才会出现parent key not found。这个东东。