论坛首页 Java企业应用论坛

hibernate入门篇之新增功能_3:one-to-many

浏览 37622 次
该帖已经被评为精华帖
作者 正文
   发表时间: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应该能够解决这类问题的吧。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics