﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-有才华的人，别忘记给滋润你的那块土壤施肥-随笔分类-hibernate</title><link>http://www.blogjava.net/kissjava/category/30699.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 10 Apr 2008 02:04:36 GMT</lastBuildDate><pubDate>Thu, 10 Apr 2008 02:04:36 GMT</pubDate><ttl>60</ttl><item><title>Hibernate学习笔记一</title><link>http://www.blogjava.net/kissjava/archive/2008/04/10/191727.html</link><dc:creator>枯宽</dc:creator><author>枯宽</author><pubDate>Thu, 10 Apr 2008 00:49:00 GMT</pubDate><guid>http://www.blogjava.net/kissjava/archive/2008/04/10/191727.html</guid><wfw:comment>http://www.blogjava.net/kissjava/comments/191727.html</wfw:comment><comments>http://www.blogjava.net/kissjava/archive/2008/04/10/191727.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kissjava/comments/commentRss/191727.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kissjava/services/trackbacks/191727.html</trackback:ping><description><![CDATA[&nbsp;<strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black">Configuration</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：负债管理</span><span lang="EN-US" style="color: black">Hibernate</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的配置信息，</span><span lang="EN-US" style="color: black">Hibernate</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的入口</span><span lang="EN-US" style="color: black"><o:p></o:p></span>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt"><span lang="EN-US" style="color: black; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">1、</span></span><span lang="EN-US" style="color: black">configure</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（）方法默认会在</span><span lang="EN-US" style="color: black">classpath</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下面寻找</span><span lang="EN-US" style="color: black">hibernatev.cfg.xml<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 18pt; text-indent: -18pt; mso-list: l0 level1 lfo2; tab-stops: list 18.0pt"><span lang="EN-US" style="color: black; mso-fareast-font-family: 'Times New Roman'"><span style="mso-list: Ignore">2、</span></span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">支持带参数的访问，可以指定</span><span lang="EN-US" style="color: black">hbm.xml</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，如：</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 18pt"><span lang="EN-US" style="color: black">File file = new File(&#8220;d:\\cfg\\hibernate.xml&#8221;);<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 18pt"><span lang="EN-US" style="color: black">Configuration config = new Configuration().config(file);</span></p>
<p class="MsoNormal" style="margin-left: 30.1pt; text-indent: -30.1pt; mso-char-indent-count: -2.5"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black">Session</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的缓存：</span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black">1</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）、充当蓄水池的作用，减少程序访问数据库的次数。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black">2</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）、保证缓存中的数据与数据库同步，同步的具体情况看</span><span lang="EN-US" style="color: black">FlushMode</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是什么</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">清理缓存是指查看缓存中的数据与数据库是否同步，不同步就发送更新语句</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30.1pt; text-indent: -30.1pt; mso-char-indent-count: -2.5"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black">FlushMode.AUTO</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：</span><span lang="EN-US" style="color: black">Hibernate</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">判断对象属性有没有改变，是默认的清理模式</span></p>
<p class="MsoNormal" style="margin-left: 120.45pt; text-indent: -120.45pt; mso-char-indent-count: -10.0"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black">FlushMode.COMMIT</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：在事务结束之前清理</span><span lang="EN-US" style="color: black">Session</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的缓存，其他任何时候都不清理缓存</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 120.45pt; text-indent: -120.45pt; mso-char-indent-count: -10.0"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black">FlushMode.NEVER</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：除非强制调用</span><span lang="EN-US" style="color: black">Session.flush()</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，或则永不清理缓存。所作的修改只限与内存</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 120.45pt; text-indent: -120.45pt; mso-char-indent-count: -10.0"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="color: black">FlushMode.ALWAYS</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：在每一个查询语句前都调用</span><span lang="EN-US" style="color: black">flush()</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">进行缓存管理，这种模式经常不必要并且低效的。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 120pt; text-indent: -120pt; mso-char-indent-count: -10.0"><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p><span lang="EN-US">Hibernate</span>定义并支持下列对象状态<span lang="EN-US">(state): </span></p>
<p style="margin-left: 36pt; text-indent: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 36.0pt"><span lang="EN-US" style="font-size: 10pt; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt"><span style="mso-list: Ignore">&#183;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><em><span style="font-family: 宋体; mso-bidi-font-family: 宋体">瞬时<span lang="EN-US">(Transient)</span></span></em><span lang="EN-US"> - </span>由<tt><span lang="EN-US">new</span></tt>操作符创建，且尚未与<span lang="EN-US">Hibernate <tt>Session</tt> </span>关联的对象被认定为瞬时<span lang="EN-US">(Transient)</span>的。瞬时<span lang="EN-US">(Transient)</span>对象不会被持久化到数据库中，也不会被赋予持久化标识<span lang="EN-US">(identifier)</span>。 如果瞬时<span lang="EN-US">(Transient)</span>对象在程序中没有被引用，它会被垃圾回收器<span lang="EN-US">(garbage collector)</span>销毁。 使用<span lang="EN-US">Hibernate <tt>Session</tt></span>可以将其变为持久<span lang="EN-US">(Persistent)</span>状态。<span lang="EN-US">(Hibernate</span>会自动执行必要的<span lang="EN-US">SQL</span>语句<span lang="EN-US">) </span></p>
<p style="margin-left: 36pt; text-indent: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 36.0pt"><span lang="EN-US" style="font-size: 10pt; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt"><span style="mso-list: Ignore">&#183;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><em><span style="font-family: 宋体; mso-bidi-font-family: 宋体">持久<span lang="EN-US">(Persistent)</span></span></em><span lang="EN-US"> - </span>持久<span lang="EN-US">(Persistent)</span>的实例在数据库中有对应的记录，并拥有一个持久化标识<span lang="EN-US">(identifier)</span>。持久<span lang="EN-US">(Persistent)</span>的实例可能是刚被保存的，或刚被加载的，无论哪一种，按定义，它存在于相关联的<tt><span lang="EN-US">Session</span></tt>作用范围内。<span lang="EN-US"> Hibernate</span>会检测到处于持久<span lang="EN-US">(Persistent)</span>状态的对象的任何改动，在当前操作单元<span lang="EN-US">(unit of work)</span>执行完毕时将对象数据<span lang="EN-US">(state)</span>与数据库同步<span lang="EN-US">(synchronize)</span>。 开发者不需要手动执行<tt><span lang="EN-US">UPDATE</span></tt>。将对象从持久<span lang="EN-US">(Persistent)</span>状态变成瞬时<span lang="EN-US">(Transient)</span>状态同样也不需要手动执行<tt><span lang="EN-US">DELETE</span></tt>语句。<span lang="EN-US"> </span></p>
<p style="margin-left: 36pt; text-indent: -18pt; mso-list: l1 level1 lfo1; tab-stops: list 36.0pt"><span lang="EN-US" style="font-size: 10pt; font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol; mso-bidi-font-size: 12.0pt"><span style="mso-list: Ignore">&#183;<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><em><span style="font-family: 宋体; mso-bidi-font-family: 宋体">脱管<span lang="EN-US">(Detached)</span></span></em><span lang="EN-US"> - </span>与持久<span lang="EN-US">(Persistent)</span>对象关联的<tt><span lang="EN-US">Session</span></tt>被关闭后，对象就变为脱管<span lang="EN-US">(Detached)</span>的。 对脱管<span lang="EN-US">(Detached)</span>对象的引用依然有效，对象可继续被修改。脱管<span lang="EN-US">(Detached)</span>对象如果重新关联到某个新的<tt><span lang="EN-US">Session</span></tt>上，会再次转变为持久<span lang="EN-US">(Persistent)</span>的<span lang="EN-US">(</span>在<span lang="EN-US">Detached</span>其间的改动将被持久化到数据库<span lang="EN-US">)</span>。 这个功能使得一种编程模型，即中间会给用户思考时间<span lang="EN-US">(user think-time)</span>的长时间运行的操作单元<span lang="EN-US">(unit of work)</span>的编程模型成为可能。我们称之为<em><span style="font-family: 宋体; mso-bidi-font-family: 宋体">应用程序事务</span></em>，即从用户观点看是一个操作单元<span lang="EN-US">(unit of work)</span>。<span lang="EN-US"> </span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">立即检索：</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="mso-spacerun: yes">&nbsp;</span></span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">立即检索的配置文件标识符为</span><span lang="EN-US" style="color: black">lazy=&#8221;false&#8221;</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，表示</span><span lang="EN-US" style="color: black">Hibernate</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在数据库中取得字段值组装好一个对象后，会立即再从数据库此对象多关联的对象，如果这个关联的对象还有关联对象，则再组装此关联对象。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">一对多和多对一关联对象则不适合立即检索。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">延迟检索：</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span><span style="mso-tab-count: 1">&nbsp; </span></span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">立即检索的配置文件标识符为</span><span lang="EN-US" style="color: black">lazy=&#8221;true&#8221;</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，就是需要用到时才会去去被关联的对象。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30.1pt; text-indent: -30.1pt; mso-char-indent-count: -2.5"><strong style="mso-bidi-font-weight: normal"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">预先抓取</span></strong><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">指的是</span><span lang="EN-US" style="color: black">Hibernate</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">通过</span><span lang="EN-US" style="color: black">select</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">语句使用</span><span lang="EN-US" style="color: black">outer join</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">来获得对象的关联实例</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或者关联集合。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black">Hibernate2.x</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本：</span><span lang="EN-US" style="color: black">outer-join=&#8221;true&#8221;</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="color: black">Hibernate3.x</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">版本：</span><span lang="EN-US" style="color: black">fetch=&#8221;join&#8221;</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；</span><span lang="EN-US" style="color: black"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal" style="mso-pagination: none; mso-layout-grid-align: none"><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">&lt;</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">one-to-one </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"cer" </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">class</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"com.kissjava.Certificate" </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">fetch</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"join" </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">cascade</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"all"</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">&gt;&lt;/</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">one-to-one</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">&gt;</span><span style="font-size: 10pt; color: teal; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">（</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">1</span><span style="font-size: 10pt; color: teal; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">）</span><span lang="EN-US" style="font-size: 10pt; font-family: 'Courier New'"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 25pt; text-indent: -25pt; mso-char-indent-count: -2.5"><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">&lt;</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">many-to-one </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">name</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"team" </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">column</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"team_id" </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">class</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"com.kissjava.Team" </span><span lang="EN-US" style="font-size: 10pt; color: #7f007f; font-family: 'Courier New'">fetch</span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: 'Courier New'">=</span><span lang="EN-US" style="font-size: 10pt; color: #2a00ff; font-family: 'Courier New'">"join"</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">&gt;&lt;/</span><span lang="EN-US" style="font-size: 10pt; color: #3f7f7f; font-family: 'Courier New'">many-to-one</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">&gt;</span><span style="font-size: 10pt; color: teal; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">（</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'">2</span><span style="font-size: 10pt; color: teal; font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New'">）</span><span lang="EN-US" style="font-size: 10pt; color: teal; font-family: 'Courier New'"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</span><span lang="EN-US" style="color: black">1</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）一个一对一关联的对象属性，名为</span><span lang="EN-US" style="color: black">cer</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在得到</span><span lang="EN-US" style="color: black">Student</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象时，采用预先抓取得到</span><span lang="EN-US" style="color: black">cer</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象，并且级联为</span><span lang="EN-US" style="color: black">all</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，说明</span><span lang="EN-US" style="color: black">Student</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的增加、删除及修改操作都会影响到</span><span lang="EN-US" style="color: black">cer</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left: 30pt; text-indent: -30pt; mso-char-indent-count: -2.5"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">（</span><span lang="EN-US" style="color: black">2</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">）一个多对一关联的对象属性，名为</span><span lang="EN-US" style="color: black">team</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在</span><span lang="EN-US" style="color: black">Student</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">表中通过</span><span lang="EN-US" style="color: black">team_id</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">与</span><span lang="EN-US" style="color: black">team</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象发生关联，</span><span lang="EN-US" style="color: black">team</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的实体类是</span><span lang="EN-US" style="color: black">Team</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，在取得</span><span lang="EN-US" style="color: black">Student</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">实例时，使用预先抓取得到</span><span lang="EN-US" style="color: black">team</span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象。</span><span lang="EN-US" style="color: black"><o:p></o:p></span></p>
<img src ="http://www.blogjava.net/kissjava/aggbug/191727.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kissjava/" target="_blank">枯宽</a> 2008-04-10 08:49 <a href="http://www.blogjava.net/kissjava/archive/2008/04/10/191727.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>