JiveJdon Community Forums
在线429人   首页   主题表   培训咨询   标签   精华   查搜   注册    登陆 RSS
首页 » 论坛 » J2EE/JavaEE/JEE/EJB/JSF等技术讨论
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
Go 总共有 7 回复 / 1
 发表新帖子   回复该主题贴
Soundwave

悄悄话
发表文章: 3
注册时间: 2003年07月10日 14:34
Hibernate中的一个问题 2003年08月20日 14:39 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签列表
数据库中有两个表TableA和TableB,这两个表分别映射成为两个实体类EntityA和EntityB,两个实体之间存在一对多的关系(一个EntityA包含多个EntityB),在代码中如下
class A{
...
Map CollectionOfEntityB;
...
}
而且数据库中TableA和TableB的主键都是多个字段的,这种情况下在编写映射的XML文件时,class A的标签中,要写上一个<map>标签
<map>标签下有一个<key>标签,看了文档,它应该指示为A的主键,但是由于A的主键是多个列组成的,这种情况下应该怎样写这个XML文件呢?哪位能帮忙解答一下,多谢了
windman

悄悄话
发表文章: 35
注册时间: 2003年05月30日 15:44
Re: Hibernate中的一个问题 2003年08月20日 14:45 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
用一个无任何实际意义的字符做主键,这是基本原则,不要再用几个字段做主键这种形式了...
注意看看Hibernate的reference文档
yadan

悄悄话
发表文章: 80
注册时间: 2002年08月22日 11:05
Re: Hibernate中的一个问题 2003年08月20日 14:56 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
我也很想知道这个问题!

如果数据库表做成那样,不能轻易修改了,用Hibernate有什么解决的方法呢? robbin大侠说说看~)
Soundwave

悄悄话
发表文章: 3
注册时间: 2003年07月10日 14:34
Re: Hibernate中的一个问题 2003年08月20日 15:09 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
如果使用的以前遗留的系统,那么很难轻易修改数据库结构,Hibernate 中没有给出好的解决方案吗?
ax3536

悄悄话
发表文章: 21
注册时间: 2003年04月12日 20:18
Re: Hibernate中的一个问题 2003年08月20日 15:11 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
这是那5%里的东东!
tiyi

悄悄话
发表文章: 18
注册时间: 2003年06月03日 14:41
Re: Hibernate中的一个问题 2003年08月20日 17:24 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
标签是什么东西?
按照你的说法应该用composite-id阿。
robbin

悄悄话
发表文章: 589
注册时间: 2003年06月18日 09:32
Re: Hibernate中的一个问题 2003年08月20日 18:01 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
可以使用复合主键,但是Gavin推荐的方式是自定义一个UserType,把那几个字段包含进去,用这个UserType作为主键。UserType的编写很简单的,记得前面有一个帖子我和一个人讨论过这个问题的,搜索一下。
Soundwave

悄悄话
发表文章: 3
注册时间: 2003年07月10日 14:34
Re: Hibernate中的一个问题 2003年08月21日 08:40 到本帖网址 加入本帖到收藏夹 发送到手机 回复该主题
在class A的映射文件中,有下面代码

<map name="ClassB" table="TableB" lazy="true">
<key column=
"" /><!--这个地方应该写什么,因为A的主键是由好几个字段构成的,应此不能只写一个column呀-->
<index ...>
<one-to-many class=
"EntityB"/>
</map>

看了看reference的文档,关于
<key>
的解释如下:
Collection instances are distinguished in the database by a foreign key to the owning entity. This foreign key is
referred to as the collection key . The collection key is mapped by the <key> element.

我想上文中的“owning entity”,就应该是EntityA(它包含了一个EntityB的集合),所以
<key>
应该是指TableA的主键,现在的问题是:
<key>
标签中的column属性只允许填充一个字段,而EntityA
却是一个composite-id,含有好几个字段,让我比较搞不清状况了。这就是我的问题所在。
不知道我理解的对不对,请各位指教。谢谢
这个主题有 7 回复 / 1Go
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache 缓存 DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Seam Spring Struts
正在读取,请等待...
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
查询本论坛内 回复超过的热门帖子
     回复该主题贴
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
  每2分种自动备份发贴内容Ctrl-V粘贴取出,提问题前先查询标签列表

RSS 手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam