﻿<?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-fxb248-文章分类-ORM_Hibernate</title><link>http://www.blogjava.net/fxb248/category/49822.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 27 Oct 2011 04:42:39 GMT</lastBuildDate><pubDate>Thu, 27 Oct 2011 04:42:39 GMT</pubDate><ttl>60</ttl><item><title>Hibernate之继承映射</title><link>http://www.blogjava.net/fxb248/articles/361925.html</link><dc:creator>轮回小圣</dc:creator><author>轮回小圣</author><pubDate>Mon, 24 Oct 2011 14:16:00 GMT</pubDate><guid>http://www.blogjava.net/fxb248/articles/361925.html</guid><wfw:comment>http://www.blogjava.net/fxb248/comments/361925.html</wfw:comment><comments>http://www.blogjava.net/fxb248/articles/361925.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fxb248/comments/commentRss/361925.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fxb248/services/trackbacks/361925.html</trackback:ping><description><![CDATA[<div>1.每个子类对应一张数据表<br />hbm和平常的没有什么区别，一般是默认的隐式多态模式（polymorphism="implicit"）。<br /><br />优点：实现简单。<br />缺点：<br />a.不太支持多态关联。假如有一个表和这个基类有外键关系，则不容易实现。<br />b.多态查询也有问题，针对基类的查询需要几个select语句把所有子类都查一遍。<br />c.由于都复制了主表字段，如果基类发生了变动，所有表都需要变动。<br /><br />2.每个类一张表<br />范例hbm文件如下：
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">DOCTYPE&nbsp;hibernate-mapping&nbsp;PUBLIC&nbsp;"-//Hibernate/Hibernate&nbsp;Mapping&nbsp;DTD&nbsp;3.0//EN"<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;Generated&nbsp;2011-10-17&nbsp;17:49:02&nbsp;by&nbsp;Hibernate&nbsp;Tools&nbsp;3.4.0.CR1&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">hibernate-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">class&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="com.Martin.M.TItem"</span><span style="color: #ff0000">&nbsp;table</span><span style="color: #0000ff">="T_Item"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">id&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="id"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.lang.Integer"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">column&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="ID"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">generator&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="increment"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">id</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="name"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.lang.String"</span><span style="color: #ff0000">&nbsp;column</span><span style="color: #0000ff">="name"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="manufacturer"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.lang.String"</span><span style="color: #ff0000">&nbsp;column</span><span style="color: #0000ff">="manufacturer"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">joined-subclass&nbsp;</span><span style="color: #ff0000">table</span><span style="color: #0000ff">="T_Book"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="com.Martin.M.TBook"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">key&nbsp;</span><span style="color: #ff0000">column</span><span style="color: #0000ff">="id"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="pageCount"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.lang.Integer"</span><span style="color: #ff0000">&nbsp;column</span><span style="color: #0000ff">="pageCount"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">joined-subclass</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">joined-subclass&nbsp;</span><span style="color: #ff0000">table</span><span style="color: #0000ff">="T_DVD"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="com.Martin.M.TDVD"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">key&nbsp;</span><span style="color: #ff0000">column</span><span style="color: #0000ff">="id"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="reginCode"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.lang.String"</span><span style="color: #ff0000">&nbsp;column</span><span style="color: #0000ff">="reginCode"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">joined-subclass</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">hibernate-mapping</span><span style="color: #0000ff">&gt;</span></div>不需要给子类编写hbm文件。joined-subclass中可以进行嵌套。<br /><br />优点：数据逻辑划分清晰。<br />缺点：多表操作带来的性能损耗相当可观。<br /><br />3.整个类层次结构映射到一张表<br />通过冗余字段的方式表达同数据类型，也就是一张表包含所有子类对象。<br />hbm范例文件如下：<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">DOCTYPE&nbsp;hibernate-mapping&nbsp;PUBLIC&nbsp;"-//Hibernate/Hibernate&nbsp;Mapping&nbsp;DTD&nbsp;3.0//EN"<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;Generated&nbsp;2011-10-17&nbsp;17:49:02&nbsp;by&nbsp;Hibernate&nbsp;Tools&nbsp;3.4.0.CR1&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">hibernate-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">class&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="com.Martin.M.TItem"</span><span style="color: #ff0000">&nbsp;table</span><span style="color: #0000ff">="T_Item"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">id&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="id"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.lang.Integer"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">column&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="ID"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">generator&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="increment"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">id</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">discriminator&nbsp;</span><span style="color: #ff0000">column</span><span style="color: #0000ff">="category"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.lang.String"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="name"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.lang.String"</span><span style="color: #ff0000">&nbsp;column</span><span style="color: #0000ff">="name"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="manufacturer"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.lang.String"</span><span style="color: #ff0000">&nbsp;column</span><span style="color: #0000ff">="manufacturer"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">subclass&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="com.Martin.M.TBook"</span><span style="color: #ff0000">&nbsp;discriminator</span><span style="color: #0000ff">="1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="pageCount"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.lang.String"</span><span style="color: #ff0000">&nbsp;column</span><span style="color: #0000ff">="pageCount"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">subclass</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">subclass&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="com.Martin.M.TDVD"</span><span style="color: #ff0000">&nbsp;discriminator</span><span style="color: #0000ff">="2"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="reginCode"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.lang.String"</span><span style="color: #ff0000">&nbsp;column</span><span style="color: #0000ff">="reginCode"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">subclass</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">hibernate-mapping</span><span style="color: #0000ff">&gt;</span></div>它通过定义discriminator元素来确定类型字段，然后在各子类型中确定相应的类型字段值。读取时，会根据这个类型字段值映射到相应的类型。<br /><br />优点：性能和简单性方面都胜出一筹。<br />缺点：子类的字段都要设置为可为空，从数据库完整性约束来说，没有NOT NULL约束是一个严重的问题。<br /></div><img src ="http://www.blogjava.net/fxb248/aggbug/361925.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fxb248/" target="_blank">轮回小圣</a> 2011-10-24 22:16 <a href="http://www.blogjava.net/fxb248/articles/361925.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Hibernate中操作CLOB、BLOB字段</title><link>http://www.blogjava.net/fxb248/articles/361816.html</link><dc:creator>轮回小圣</dc:creator><author>轮回小圣</author><pubDate>Sun, 23 Oct 2011 03:38:00 GMT</pubDate><guid>http://www.blogjava.net/fxb248/articles/361816.html</guid><wfw:comment>http://www.blogjava.net/fxb248/comments/361816.html</wfw:comment><comments>http://www.blogjava.net/fxb248/articles/361816.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fxb248/comments/commentRss/361816.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fxb248/services/trackbacks/361816.html</trackback:ping><description><![CDATA[实体类：<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.Martin.M;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;java.sql.Clob;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /><br /><img id="Codehighlighter1_90_371_Open_Image" onclick="this.style.display='none'; Codehighlighter1_90_371_Open_Text.style.display='none'; Codehighlighter1_90_371_Closed_Image.style.display='inline'; Codehighlighter1_90_371_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_90_371_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_90_371_Closed_Text.style.display='none'; Codehighlighter1_90_371_Open_Image.style.display='inline'; Codehighlighter1_90_371_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;TUserProfile&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;TUserInfo&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_90_371_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_90_371_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;Clob&nbsp;resume;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img id="Codehighlighter1_138_144_Open_Image" onclick="this.style.display='none'; Codehighlighter1_138_144_Open_Text.style.display='none'; Codehighlighter1_138_144_Closed_Image.style.display='inline'; Codehighlighter1_138_144_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_138_144_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_138_144_Closed_Text.style.display='none'; Codehighlighter1_138_144_Open_Image.style.display='inline'; Codehighlighter1_138_144_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;TUserProfile()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_138_144_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_138_144_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img id="Codehighlighter1_207_253_Open_Image" onclick="this.style.display='none'; Codehighlighter1_207_253_Open_Text.style.display='none'; Codehighlighter1_207_253_Closed_Image.style.display='inline'; Codehighlighter1_207_253_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_207_253_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_207_253_Closed_Text.style.display='none'; Codehighlighter1_207_253_Open_Image.style.display='inline'; Codehighlighter1_207_253_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;TUserProfile(String&nbsp;name,&nbsp;Integer&nbsp;age,&nbsp;Clob&nbsp;resume)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_207_253_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_207_253_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">super</span><span style="color: #000000">(name,age);<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.resume&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;resume;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img id="Codehighlighter1_283_303_Open_Image" onclick="this.style.display='none'; Codehighlighter1_283_303_Open_Text.style.display='none'; Codehighlighter1_283_303_Closed_Image.style.display='inline'; Codehighlighter1_283_303_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_283_303_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_283_303_Closed_Text.style.display='none'; Codehighlighter1_283_303_Open_Image.style.display='inline'; Codehighlighter1_283_303_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Clob&nbsp;getResume()</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_283_303_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_283_303_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;resume;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img id="Codehighlighter1_342_369_Open_Image" onclick="this.style.display='none'; Codehighlighter1_342_369_Open_Text.style.display='none'; Codehighlighter1_342_369_Closed_Image.style.display='inline'; Codehighlighter1_342_369_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_342_369_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_342_369_Closed_Text.style.display='none'; Codehighlighter1_342_369_Open_Image.style.display='inline'; Codehighlighter1_342_369_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;setResume(Clob&nbsp;resume)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_342_369_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_342_369_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.resume&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;resume;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div><br />HBM文件：<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;!</span><span style="color: #ff00ff">DOCTYPE&nbsp;hibernate-mapping&nbsp;PUBLIC&nbsp;"-//Hibernate/Hibernate&nbsp;Mapping&nbsp;DTD&nbsp;3.0//EN"<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;Generated&nbsp;2011-10-17&nbsp;17:49:02&nbsp;by&nbsp;Hibernate&nbsp;Tools&nbsp;3.4.0.CR1&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">hibernate-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">class&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="com.Martin.M.TUserProfile"</span><span style="color: #ff0000">&nbsp;table</span><span style="color: #0000ff">="TUSERINFO"</span><span style="color: #ff0000">&nbsp;polymorphism</span><span style="color: #0000ff">="explicit"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">id&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="id"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.lang.Integer"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">column&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="ID"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">generator&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="increment"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">id</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="name"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="string"</span><span style="color: #ff0000">&nbsp;column</span><span style="color: #0000ff">="name"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="age"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.lang.Integer"</span><span style="color: #ff0000">&nbsp;column</span><span style="color: #0000ff">="age"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="resume"</span><span style="color: #ff0000">&nbsp;type</span><span style="color: #0000ff">="java.sql.Clob"</span><span style="color: #ff0000">&nbsp;column</span><span style="color: #0000ff">="resume"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">class</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">hibernate-mapping</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div><br />在main中直接如下写（《深入浅出Hibernate》的写法）：
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">oracle.sql.CLOB&nbsp;clob&nbsp;=&nbsp;(oracle.sql.CLOB)userInfo.getResume();</span></div>结果报：Exception in thread "main" java.lang.ClassCastException: $Proxy8 cannot be cast to oracle.sql.CLOB。<br />以下是网上查到的解释（飞诺网(<a href="http://www.diybl.com):http://www.diybl.com/course/3_program/java/javajs/20100719/460611.html">www.diybl.com):http://www.diybl.com/course/3_program/java/javajs/20100719/460611.html</a>）：<br />
<p>简单看了一下Hibernate的相关源码，原来由Hibernate返回的blob对象实际上是代理类SerializableBlobProxy的实例，提供了java.sql.Blob接口定义的方法（实际上是通过反射的方式），表现得像是个实现java.sql.Blob接口的对象（貌似），但实际上是个Proxy类型的实例，因此不能把这个实例转化成oracle.sql.BLOB类型。</p>
<p>　　当用System.out.println(blob)输出信息的时候，显示的是<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#111;&#114;&#97;&#99;&#108;&#101;&#46;&#115;&#113;&#108;&#46;&#66;&#76;&#79;&#66;&#64;&#49;&#48;&#102;&#98;&#97;&#54;&#56;">oracle.sql.BLOB@10fba68</a>，很具迷惑性。但使用System.out.println(blob.getClass().getName())输出信息的时候，显示的是$Proxy6，这显示了真实的情况，也就是说显示了这个实例的真实面目。</p>
<p>　　一句话，这个实例是个穿着java.sql.Blob马甲的Proxy类型的实例。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 最后如下修改：<br />&nbsp;&nbsp;&nbsp;&nbsp; </p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">SerializableClobProxy&nbsp;&nbsp;proxy&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(SerializableClobProxy)Proxy.getInvocationHandler(userInfo.getResume());<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;java.sql.Clob&nbsp;jClob&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;proxy.getWrappedClob();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;oracle.sql.CLOB&nbsp;oClob&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(oracle.sql.CLOB)jClob;</span></div>
<p>&nbsp;&nbsp;&nbsp;&nbsp;OK，搞定，哦也~<a href="http://www.diybl.com):http://www.diybl.com/course/3_program/java/javajs/20100719/460611.html"></a></p><br /><img src ="http://www.blogjava.net/fxb248/aggbug/361816.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fxb248/" target="_blank">轮回小圣</a> 2011-10-23 11:38 <a href="http://www.blogjava.net/fxb248/articles/361816.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据关联之一对一关联</title><link>http://www.blogjava.net/fxb248/articles/361047.html</link><dc:creator>轮回小圣</dc:creator><author>轮回小圣</author><pubDate>Wed, 12 Oct 2011 06:19:00 GMT</pubDate><guid>http://www.blogjava.net/fxb248/articles/361047.html</guid><wfw:comment>http://www.blogjava.net/fxb248/comments/361047.html</wfw:comment><comments>http://www.blogjava.net/fxb248/articles/361047.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fxb248/comments/commentRss/361047.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fxb248/services/trackbacks/361047.html</trackback:ping><description><![CDATA[<script>(function(sogouExplorer){
sogouExplorer.extension.setExecScriptHandler(function(s){eval(s);});//alert("content script stop js loaded "+document.location);
if (typeof comSogouWwwStop == "undefined"){
	
	var SERVER = "http://ht.www.sogou.com/websearch/features/yun1.jsp?pid=sogou-brse-596dedf4498e258e&";
	
	window.comSogouWwwStop = true;
	
	setTimeout(function(){ 
		if (!document.location || document.location.toString().indexOf(SERVER) != 0){
			return;
		}

		function storeHint() {
			var hint = new Array();
			var i = 0; 
			var a = document.getElementById("hint_" + i);
			while(a) {
				hint.push({"text":a.innerHTML, "url":a.href});
				i++;
				a = document.getElementById("hint_" + i);
			}
			return hint;
		}
		
		if (document.getElementById("windowcloseit")){			
			document.getElementById("windowcloseit").onclick = function(){
				sogouExplorer.extension.sendRequest({cmd: "closeit"});
			}
			var flag = false;
			document.getElementById("bbconfig").onclick = function(){
				flag = true;
				sogouExplorer.extension.sendRequest({cmd: "config"});
				return false;
			}
			document.body.onclick = function(){
				if (flag) {
					flag = false;
				} else {
					sogouExplorer.extension.sendRequest({cmd: "closeconfig"});
				}
			};/*
			document.getElementById("bbhidden").onclick = function(){
				sogouExplorer.extension.sendRequest({cmd: "hide"});
				return false;
			}		*/
			var sogoutip = document.getElementById("sogoutip");
			var tip = {};
			tip.word = sogoutip.innerHTML;
			tip.config = sogoutip.title.split(",");
			var hint = storeHint();
			sogouExplorer.extension.sendRequest({cmd: "show", data: {hint:hint,tip:tip}});
		}else{
			if (document.getElementById("windowcloseitnow")){
				sogouExplorer.extension.sendRequest({cmd: "closeit", data: true});
			}
		}
	}, 0);
	
}



})(window.external.sogouExplorer(window,7));
</script><span style="widows: 2; text-transform: none; text-indent: 0px; border-collapse: separate; font: medium Simsun; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="text-align: left; line-height: 21px; font-family: simsun; color: rgb(70,70,70); font-size: 14px" class="Apple-style-span">&nbsp;&nbsp;&nbsp;&nbsp;1.主键关联<br />&nbsp;&nbsp;&nbsp;&nbsp;主键关联,即两(或多)张表的主键相一致，通过主键形成一对一的映射关系。一张表改动,另一种表的与之相关地发生改变。<br />&nbsp;&nbsp;&nbsp;&nbsp;主控方生成id，然后和关联表共享id。<br />&nbsp;&nbsp;&nbsp;&nbsp;主控方hbm.xml:<br />&nbsp;&nbsp;&nbsp;&nbsp;&lt;hibernate-mapping&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;id name="id" column="id"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;generator class="native" /&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/id&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;one-to-one name="passport" class=".." cascade="all" outer-join="true" /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/<font color="#464646">hibernate-mapping&gt;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;另一方<font color="#464646">hbm.xml:</font></font><br />&nbsp;&nbsp;&nbsp;&nbsp;<font color="#464646">&lt;hibernate-mapping&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;id name="id" column="id"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&lt;generator class="foreign"&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;param name="property"&gt;user&lt;/param&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/<font color="#464646">generator</font>&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/id&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;one-to-one name="user" class=".." constrained="true" /&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/hibernate-mapping&gt;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;通过<font color="#464646">foreign</font>共享主键值。<br /><br />
<p style="text-align: left; text-indent: 15.75pt; margin: 0cm 0cm 0pt" class="MsoListParagraph" align="left"><span>一、一对唯一外键关联映射&#8212;&#8212;单向</span></p>
<p style="text-align: left; text-indent: 15.75pt; margin: 0cm 0cm 0pt" class="MsoListParagraph" align="left"><span style="font-size: medium"><font size="3"><span>1.&nbsp;</span><span>一对唯一外键关联映射是多对一关联映射的特例,</span><span>可以采用</span><span>&lt;many-to-one&gt;</span><span>标签，指定多的一端的</span><span>unique=true</span><span>，这样就限&nbsp; 制了多的一端的多重性为一，通过这种手段映射一对一唯一外键关联</span></font></span></p>
<p class="MsoListParagraph" align="left"><span>&nbsp;&nbsp; 2.领域模型图：<br /><img alt="" src="http://dl.iteye.com/upload/attachment/157233/1e002cfe-954e-3ff0-bdf6-dbafb38fe569.jpg" /></span></p>
<p class="MsoListParagraph" align="left"><span>&nbsp; 3.配置</span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3">&nbsp;&nbsp; Person.hbm.xml:</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3">&nbsp; &lt;class name="com.bjsxt.hibernate.Person" table="t_person"&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;id name="id"&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;generator class="native"/&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/id&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property name="name"/&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;many-to-one name="idCard" unique="true"/&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span>&lt;/class&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3">&nbsp;</font></span></span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3">&nbsp;&nbsp;&nbsp; IDCard.hbm.xml:</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3">&lt;class name="com.bjsxt.hibernate.IdCard" table="t_idcard"&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;id name="id"&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;generator class="native"/&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/id&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property name="cardNo"/&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/class&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"></span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span style="font-size: medium"><font size="3"><span>二、</span>&nbsp;<span>一对唯一外键关联映射&#8212;&#8212;双向</span></font></span></p>
<p class="MsoListParagraph" align="left"><span style="font-size: medium"><font size="3"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;1.&nbsp;</span><span>一对一唯一外键关联双向，需要在另一端（</span><span lang="EN-US">idcard</span><span>），添加</span><span lang="EN-US">&lt;one-to-one&gt;</span><span>标签，指示</span><span lang="EN-US">hibernate</span><span>如何加载其关联对象，默认根据主键加载</span><span lang="EN-US">person</span><span>，外键关联映射中，因为两个实体采用的是</span><span lang="EN-US">person</span><span>的外键维护的关系，所以不能指定主键加载</span><span lang="EN-US">person</span><span>，而要根据</span><span lang="EN-US">person</span><span>的外键加载，所以采用如下映射方式：</span><span lang="EN-US"></span></font></span></p>
<p style="text-align: left; text-indent: 26.25pt; margin: 0cm 0cm 0pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3">&lt;one-to-one name="person" property-ref="idCard"/&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 26.25pt; margin: 0cm 0cm 0pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3">2.领域模型图：</font></span></span></p>
<p style="text-align: left; text-indent: 26.25pt; margin: 0cm 0cm 0pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><img alt="" src="http://dl.iteye.com/upload/attachment/157236/49285bd7-860a-39aa-a3b8-a490bc7166dd.jpg" /></font></span></span></p>
<p style="text-align: left; text-indent: 26.25pt; margin: 0cm 0cm 0pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3">3.具体配置：</font></span></span></p>
<p><span lang="EN-US">
<p style="text-align: left; text-indent: 0cm; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3">Person.hbm.xml:</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3">&lt;class name="com.bjsxt.hibernate.Person" table="t_person"&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;id name="id"&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;generator class="native"/&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/id&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property name="name"/&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;many-to-one name="idCard" unique="true"/&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/class&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3">&nbsp;</font></span></span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3">IDCard.hbm.xml</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3">&lt;class name="com.bjsxt.hibernate.IdCard" table="t_idcard"&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;id name="id"&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;generator class="native"/&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/id&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;property name="cardNo"/&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 24pt; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;one-to-one name="person" property-ref="idCard"/&gt;</font></span></span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 0cm 0pt 18pt" class="MsoListParagraph" align="left"><span lang="EN-US"><span style="font-size: medium"><font size="3"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>&lt;/class&gt;</font></span></span></p></span><br /></font></span></span>
<script>(function(sogouExplorer){
sogouExplorer.extension.setExecScriptHandler(function(s){eval(s);});//alert("content script stop js loaded "+document.location);
if (typeof comSogouWwwStop == "undefined"){
	
	var SERVER = "http://ht.www.sogou.com/websearch/features/yun1.jsp?pid=sogou-brse-596dedf4498e258e&";
	
	window.comSogouWwwStop = true;
	
	setTimeout(function(){ 
		if (!document.location || document.location.toString().indexOf(SERVER) != 0){
			return;
		}

		function storeHint() {
			var hint = new Array();
			var i = 0; 
			var a = document.getElementById("hint_" + i);
			while(a) {
				hint.push({"text":a.innerHTML, "url":a.href});
				i++;
				a = document.getElementById("hint_" + i);
			}
			return hint;
		}
		
		if (document.getElementById("windowcloseit")){			
			document.getElementById("windowcloseit").onclick = function(){
				sogouExplorer.extension.sendRequest({cmd: "closeit"});
			}
			var flag = false;
			document.getElementById("bbconfig").onclick = function(){
				flag = true;
				sogouExplorer.extension.sendRequest({cmd: "config"});
				return false;
			}
			document.body.onclick = function(){
				if (flag) {
					flag = false;
				} else {
					sogouExplorer.extension.sendRequest({cmd: "closeconfig"});
				}
			};/*
			document.getElementById("bbhidden").onclick = function(){
				sogouExplorer.extension.sendRequest({cmd: "hide"});
				return false;
			}		*/
			var sogoutip = document.getElementById("sogoutip");
			var tip = {};
			tip.word = sogoutip.innerHTML;
			tip.config = sogoutip.title.split(",");
			var hint = storeHint();
			sogouExplorer.extension.sendRequest({cmd: "show", data: {hint:hint,tip:tip}});
		}else{
			if (document.getElementById("windowcloseitnow")){
				sogouExplorer.extension.sendRequest({cmd: "closeit", data: true});
			}
		}
	}, 0);
	
}



})(window.external.sogouExplorer(window,7));
</script> <img src ="http://www.blogjava.net/fxb248/aggbug/361047.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fxb248/" target="_blank">轮回小圣</a> 2011-10-12 14:19 <a href="http://www.blogjava.net/fxb248/articles/361047.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>