浏览 7357 次
锁定老帖子 主题:一个应用的问题.
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2003-09-25
当有时仅想得到A的部分资料目录,而不需要BCD信息时,如果把A做成一个当然是不好的,hibernate会把BCD等等相关内容也都取出来了, 是不是该用subclass,然后把many-to-one放到subclass里去,根据不同需要用不同的class呢? 用struts+hibernate时还碰到一个问题,比如: A > B 是一对多的关系 我把AB都放到一块儿一起录入(也就是一个界面上录入),提交保存操作正常. 用的是 是可以正确运行的. [list=]a = ...; b[] = ....; for ( in i =0 ; i < b.length; i++ ) a.addB( b[i] ); save( a ); 在修改时再保存时,用 a = ...; b[] = ....; for ( in i =0 ; i < b.length; i++ ) a.addB( b[i] ); update( a ); 这时就会出错,会把b的内容用insert到数据库,而不用update到数据库,这个应该怎么用呢? 还遇到用saveOrUpdate( b )的时候会出错(破坏了数据库唯一性). 改用 try { save( b ); } catch (Exception e) { update( b ); } 是可以成功运行的. [/list] 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2003-09-25
http://hibernate.bluemars.net/41.html
|
|
返回顶楼 | |
发表时间:2003-09-25
引用 初学hibernate,有这样一个问题,当有 A > B > C > D 多层 一对多关系时.
当有时仅想得到A的部分资料目录,而不需要BCD信息时,如果把A做成一个当然是不好的,hibernate会把BCD等等相关内容也都取出来了, 是不是该用subclass,然后把many-to-one放到subclass里去,根据不同需要用不同的class呢? 不需要,只要使用lazy loading就可以了。 引用 用struts+hibernate时还碰到一个问题,比如:
A > B 是一对多的关系 我把AB都放到一块儿一起录入(也就是一个界面上录入),提交保存操作正常. 用的是 是可以正确运行的. [list=]a = ...; b[] = ....; for ( in i =0 ; i < b.length; i++ ) a.addB( b[i] ); save( a ); 在修改时再保存时,用 a = ...; b[] = ....; for ( in i =0 ; i < b.length; i++ ) a.addB( b[i] ); update( a ); 这时就会出错,会把b的内容用insert到数据库,而不用update到数据库,这个应该怎么用呢? 不需要写update 引用 还遇到用saveOrUpdate( b )的时候会出错(破坏了数据库唯一性).
不应该用saveOrUpdate |
|
返回顶楼 | |
发表时间:2003-09-25
第一个我回去试试,
第二个因为有可能同时修改了a及b中的内容(因为内容不多,放在一个界面上了),不用update那该怎么保存起来呢? 第三个是因为在修改时,其中b,有可能是修改,也有可能是添加的。saveOrUpdate不是相当于实现 try { save( b ); } catch (Exception e) { update( b ); } 的功能么? 比如一个简单的权限系统。 a是简单的用户信息,只有几个字段,用户名、密码, b是用户的权限,用户名+模块代码+权限值 模块代码+模块名称+进入链接,放在数据字典里面,可以动态增减模块,当添加模块的时候就会出现第三个所说的。 |
|
返回顶楼 | |
发表时间:2003-09-25
谢谢钩子船长,写了半天才看到你的,呵呵,又问重复了
|
|
返回顶楼 | |
发表时间:2003-09-25
第二个还有点不懂,如果不用update或其它,Session怎么知道我的 a 呢?因为a本身也是修改后的内容,是从客户端提交来的数据填成的。
|
|
返回顶楼 | |
发表时间:2003-09-25
rain999 写道 第二个还有点不懂,如果不用update或其它,Session怎么知道我的 a 呢?因为a本身也是修改后的内容,是从客户端提交来的数据填成的。
tx.commit的时候会检测PO的状态是否同步。只有跨Session进行PO状态同步的时候才需要用到update。 |
|
返回顶楼 | |