该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2004-05-12
按照smallduzi的例子,程序毫无问题。但自己在调试的时候,根据实际情况作了一些修改,发生以下这个问题,不知道有谁能提供解决的方式!
如果有2个表 表名 主键 其他字段 对应的类 T1 t1_pk ...... classT1 T2 t2_pk t1_pk ....... classT2 2个表各自有主键,表T2有外键指向t1。 classT1 t1 = new classT1(); ... classT2 t2 = new classT2(); ..... t2.setLocation(t1); t1.getArea().add(t2); 这个时候进行保存 tx = session.beginTransaction(); session.save(t1); --- 根据文档,此时只要保存t1,会自动保存t2 tx.commit(); session.close(); 在进行commit的时候发生错误! 通过打开hibernate的sql输出,发现 t1保存采用insert的方式 而t2的保存采用了update方式, (而采用smallduzi的例子,这2个实例的保存都是采用insert方法保存的) 现在只能用最笨的方式处理: 先保存t1,在保存t2,将2者关联起来后再次保存t1. 在hibernate内部是怎么做得?如果碰到了这种问题该如何处理? hibernate应该能够解决这类问题的吧。 |
|
返回顶楼 | |