??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品视频线看,国产伦精品一区二区,一区二区三区视频免费http://www.aygfsteel.com/jxhkwhy/category/26899.htmlzh-cnMon, 29 Oct 2007 04:33:22 GMTMon, 29 Oct 2007 04:33:22 GMT60O/R MAPPING (HIBERNATE)Ҏ(gu)结http://www.aygfsteel.com/jxhkwhy/articles/156465.htmlUR?/dc:creator>UR?/author>Sun, 28 Oct 2007 04:36:00 GMThttp://www.aygfsteel.com/jxhkwhy/articles/156465.htmlhttp://www.aygfsteel.com/jxhkwhy/comments/156465.htmlhttp://www.aygfsteel.com/jxhkwhy/articles/156465.html#Feedback0http://www.aygfsteel.com/jxhkwhy/comments/commentRss/156465.htmlhttp://www.aygfsteel.com/jxhkwhy/services/trackbacks/156465.html http://www.jdon.com/jivejdon/thread/22244.html

Q一Q对象之间的关系Q?br /> 1Q?依赖Q?br /> 依赖对象通过调用被依赖对象的Ҏ(gu)来获得服务。一U比较松散的关系Qƈ且是短期的。我们的q程与对象往往依赖与我们的实体域对象。如在struts ?action中调用模型层的方法?br /> 2Q?兌
它一个类指到另一个类的属性。长期的
3Q?聚合
聚合关系是关联关pȝ一U,是强的关联关pR聚合是整体和部分之间的关系?br /> 4Q?l合
也叫合成关系Q组成关pL兌关系的一U,是比聚合关系强的关系。对象负责代表部分的对象的生命周期?br /> 注:(x)既然聚合Q组合关pd于关联关p,那么如何区分一般关联关p,聚合关系和组合关pdQ?br /> 一般关联:(x)只要一个对象联pd另外一个对象就形成?jin)关联关pR如Qh和他的猫Q黑豹乐队和H魏Qpc机和昄器?br /> 聚合关系Q一U强兌关系Q它要求有部分和整体的关p,q且没有?jin)整体部分也可以独立存在。在上面三个例子中h和它的猫昄没有部分和整体的关系Q所以只能是一般的兌关系。而黑豹乐队和H魏Q窦等人组成了(jin)黑v乐队卻I(x)H魏和黑Ҏ(gu)整体和部分的关系。?br /> H魏q?jin)黑豹(早就d?jin)?j)更或者黑豹不存在?jin)那么窦仍然可以以音乐人的w䆾存在Q即对象仍然可以独立存在Q所以它属于聚合关系。组成关pL可以׃n的。(H魏也可以加入其他乐队)(j)?br /> l合关系Q一U更强的整体和部分的关系。它q且要求代表整体的对象负责代表部分的对象的生命周期,l成关系是不能共享的。如Qpc机和昄器的关系?br /> 我觉得:(x)如果两个实体是整体和部分的关p,那么它们到底是聚合还是组合,q取决于你的需求。比如说Qpc机和昄器的关系Q如果你的系l中Q显C器q?pc机就不存在意义了(jin)Q也可以_(d)(x)所有显C器的访问都是通过pc行的Q那么你可以把关p设定ؓ(f)l合Q如你在Z个只买品牌机的代理商作系l你可能是可以这么作的)(j)。如果你的显C器q的pcZ然可以独立存在,也就是说在系l中可以直接讉K昄器对象,那么你可以将关系设ؓ(f)聚合Q如你在Z个买散g的代理商作系l你可能是可以这么作的)(j)
5Q?l承
q个我不惛_讲了(jin)Q用q面向对象的语言都应该知道?br /> Q二Q关pL据库的关p?br /> 一对一
一对多
多对一
多对?br /> Q三Qo/r mapping{略
1Q(h)承:(x)
对于l承关系一般有三种{略Q?br /> {略1l承?wi)的每个cd应一个表<joined-subclass >
׃n主键
{略2l承?wi)的根类对应一个表<discriminator ><subclass >
需要添加一个识别字D?br /> {略3l承?wi)的叶子cd应一个表
不支持多态查?br /> 2Q关?br /> 2Q?一对一
一半有两种{略Q?br /> {略1Q唯一的外?br /> <many-to-one>+unique=”true” (唯一的外?
<one-to-one>
{略2Q共享主?br /> <one-to-one>
<one-to-one><constrained=”true”> (既是主键又是外键)
注意Q生成方式需要用Qforeign
2Q?一对多Q无需多说Q?br /> 2Q?多对一Q无需多说Q?br /> 2Q?多对?br /> {略1QA,B表多对多的关p需要引入C表?br /> C表中的所有属性即Z键又为外键分别参照A,B两表?br /> C表中不可以有其他属?br /> {略2Q将多对多拆分成两个一对多Q?br /> A,B对象多对多的关系需要引入C对象。得A,B两对象与C对象的关pMؓ(f)一对多。对应数据库中:(x)A,B表多对多的关p需要引入C表。A,B两表与C表的关系Z对多?br /> C表又自己的主?br /> C表中又非主键的外键分别参照A,B两表?br /> C表中不可以有其他属?br /> 如;学生 Q课Eؓ(f)多对多的关系 那么引入学生选课?br /> 注意Q策?和策?的不同在于:(x){略2引入?jin)新的对象而策?没有。这是因P(x){略1的c表不能又自己的东ѝ而策?有?br /> 2Q?其他
上面说过Q聚合与l成是关联的一U所以他们也W合以上{略?br /> 特别的:(x)当用到组合关pȝ是否我们可用用到hibernate?#8220;lg”<component>.׃“lg”它完全可以满组成关pȝ强关联?br /> 3Q依?br /> 一般不在实体域对象中体现?br />

Re: 我的O/R MAPPING (HIBERNATE)Ҏ(gu)结 发表: 2005q?8?3?09:16 回复
jane830527 发表文章: 1/ 注册旉: 2005q?8?3?09:14
好!

 

Re: 我的O/R MAPPING (HIBERNATE)Ҏ(gu)结 发表: 2005q?8?3?09:33 回复
kkkk 发表文章: 3/ 注册旉: 2003q?4?2?13:50
支持

 

O/R MAPPING (HIBERNATE)Ҏ(gu)结 Q补充内容)(j)Q?/strong> 发表: 2005q?8?3?09:54 回复
xyz 发表文章: 38/ 注册旉: 2005q?8?2?20:17
另外我看C(jin)一U?#8221;键关?#8221;的方法,感觉很有道理。我理解?jin)一下ȝ如下Q?br /> 1Q?一般关联:(x)
q种Ҏ(gu)对于一般的兌L引入c表(另外的一张表Q仅仅表C关pR?br /> C表的主键有分别指向A,B两表Q外键)(j)。当指向一方的外键unique=”true”卛_一Q那么这一方ؓ(f)“一”Q反之ؓ(f)“?#8221;的一斏V这样就可以形成一般的兌关系。但是注意的是:(x)c表不映射为对象。C表也没有自己的属性?br /> 2Q?聚合和组?br /> 当实体A的非主键列中有一个引自实体B的时候,q种关系是B聚合A。如果这U引用是强制性的Q则是合成关p,否则合关pR是否ؓ(f)强制性,只需要将引用列设为非I即可;
3Q?l承
当实体A的主键引用自实体B的时候(即ؓ(f)外键Q,那么Al承 B?br /> ȝQ我觉得O/RM的方法有很多Q我们可以看?#8220;按外?#8220;的方法思\很清晰。但是它在解决一般的兌的时候L引入另外一张表q样势必影响效率。另外,既然聚合和组合是兌的一U那么即使是l合关系我也把它看成一般关联,也不错的。关pL据库一开始就不是Z(jin)面向对象的语a服务的,所以我们在q里映射无论那种Ҏ(gu)g都不能说是完全的Q正无误完成了(jin)O/RM?br /> 所以我觉得一切都要看我们的项目需求。因地制宜!

 

Re: 我的O/R MAPPING (HIBERNATE)Ҏ(gu)结 发表: 2005q?8?4?10:50 回复
robert8292 发表文章: 1/ 注册旉: 2005q?8?4?10:47
“{略2Q共享主?#8221;关于q个问题昨天刚被问到Q凭着目中的记忆Q勉强答对了(jin)Q汗?br />

 

Re: 我的O/R MAPPING (HIBERNATE)Ҏ(gu)结 发表: 2005q?8?1?14:07 回复
xxaxxx 发表文章: 1/ 注册旉: 2005q?8?1?14:05
水^不错Q?

 

Re: 我的O/R MAPPING (HIBERNATE)Ҏ(gu)结 发表: 2006q?1?2?21:38 回复
banq 发表文章: 8377/ 注册旉: 2002q?8?3?17:08
该文章好好在它从设计角度来看待hibernateQ对象关pd数据库之间的存在LQ如何通过hibernate配置讄Q该文从q个角度描述?br />
如果你看懂本文,q且觉得很好Q说明你已经掌握?jin)用Hibernate的真谛?br />
如果你不以ؓ(f)?dng)或者没看懂Q虽然你也在用HibernateQ说明你只是hiberante作ؓ(f)数据库傀(g)儡,请尽快{变(sh)的思\到域模型驱动分析设计上来?br />

 

Re: 我的O/R MAPPING (HIBERNATE)Ҏ(gu)结 发表: 2006q?1?2?21:40 回复
banq 发表文章: 8377/ 注册旉: 2002q?8?3?17:08
从另外一个方面说Q用hibernate需要相当的设计功底Q而非传统的数据库功底Q如果你没有q个功底Q会(x)误用hibernateQ反而是一U损実?br />
http://www.jdon.com/jive/article.jsp?forum=91&thread=24451


]]>
վ֩ģ壺 կ| | Դ| ƽ| | | | | | ʯ| ɯ| ʩ| բ| | Į| ˮ| ʷ| | ̰| ƾ| | | | | ƽ| ̴| | | | ɽ| Ȫ| պ| | | ϲ| п| н| ˫| | ̨| ƺ|