论坛首页 Java企业应用论坛

几个0ne to one ,hibernate的问题?

浏览 10972 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2003-09-24  
能解释一下2,3小问么?3的那段英文我又看着翻译了会,还是不太明白怎么用/

引用
2 unsaved-value用于区分是新对象还是老对象(已经保存到数据库中了),
即flush()时是insert还是update

unsaved-value是any,和别的值时分别代表什么意思呢?
0 请登录后投票
   发表时间:2003-09-24  
unsaved-value=any 或 none一般是用于id generator class="assigned",这是不被推荐使用的

unsaved-value一般是在被级联到时使用,比如
有一个parent,它有两个child,这两个child的id分别为null和"1"
(类Child的id是string型,unsaved-value为默认的null),当你save(parent)时,这两个child被级联,第一个id为null(等于unsaved-value)的child就会被insert到数据库中,而另一个id不等于unsaved-value,hiberante就会认为这条纪录已经存在于数据库中,它就产生一条update语句。
0 请登录后投票
   发表时间:2003-09-24  
en,大概明白你的意思了:unsaved-value属性是否只在id为Sring时候才会用到,因为int不会有null作为关键子。
我的理解:
unsaved-value=any 在任何时候parent发生改变,那么作为child如果id 属性有unsaved-value=any 他就会被始终当作新的记录来插入,如果为none,那么任何时候都被当作更新来操作。如果为unsaved-value=null,那么,只有它id号为null时,他才会被当作新记录。否则就是作为老记录来更新,是吧:DThanks
0 请登录后投票
   发表时间:2003-09-24  
其他类型也一样
0 请登录后投票
   发表时间:2003-09-24  
yehs220 写道

你的映射太乱了,两个id generator都是assigned,一个unsave-value是none,一个是any,自己都要搞晕了。你再仔细看看hibernate的文档吧,看看one-to-one是如何连接的。


突然想到另外一个问题,如果我把父对象设置为自动生成id号(如用那个uuid.hex),然后象上面hbm那样父子one to  one级连上,那么我如果生成parent 的id 为2355F333(随机),那么我如何自动生成与parent对应(相等)的child的id号,请给出些关键代码,thanks.
0 请登录后投票
   发表时间:2003-09-25  
child:
<generator class="foreign">
    <param name="property">parent</param>
</generator>
0 请登录后投票
   发表时间:2003-09-25  
yehs220 写道
child:
<generator class="foreign">
    <param name="property">parent</param>
</generator>


可以说的在具体一点么,parent是什么?
0 请登录后投票
   发表时间:2003-09-25  
yehs220 写道
其他类型也一样

哦,那么请问如果是数字型如int,Date等怎么区别应用?你刚刚给出的解释只有字符型或着id号可以为null才成立啊,整型不可以把关键字设置成空(null)吧。能说明一下当unsaved-value为默认的null),如果遇到child对象的关键字为int,Date等非字符类型怎么做么?
0 请登录后投票
   发表时间:2003-09-25  
all right,it's work well,thanks !
0 请登录后投票
论坛首页 Java企业应用版

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