⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example-parentchild.html

📁 图象处理
💻 HTML
📖 第 1 页 / 共 2 页
字号:
     </p><pre class="programlisting">Parent p = (Parent) session.load(Parent.class, pid);Child c = (Child) p.getChildren().iterator().next();p.getChildren().remove(c);session.delete(c);session.flush();</pre><p>         &#22312;&#25105;&#20204;&#30340;&#20363;&#23376;&#20013;&#65292;&#22914;&#26524;&#25105;&#20204;&#35268;&#23450;&#27809;&#26377;&#29238;&#23545;&#35937;&#30340;&#35805;&#65292;&#23376;&#23545;&#35937;&#23601;&#19981;&#24212;&#35813;&#23384;&#22312;&#65292;&#22914;&#26524;&#23558;&#23376;&#23545;&#35937;&#20174;collection&#20013;&#31227;&#38500;&#65292;&#23454;&#38469;&#19978;&#25105;&#20204;&#26159;&#24819;&#21024;&#38500;&#23427;&#12290;&#35201;&#23454;&#29616;&#36825;&#31181;&#35201;&#27714;&#65292;&#23601;&#24517;&#39035;&#20351;&#29992;<tt class="literal">cascade="all-delete-orphan"</tt>&#12290;     </p><pre class="programlisting">&lt;set name="children" inverse="true" cascade="all-delete-orphan"&gt;    &lt;key column="parent_id"/&gt;    &lt;one-to-many class="Child"/&gt;&lt;/set&gt;</pre><p>         &#27880;&#24847;&#65306;&#21363;&#20351;&#22312;collection&#19968;&#26041;&#30340;&#26144;&#23556;&#20013;&#25351;&#23450;<tt class="literal">inverse="true"</tt>&#65292;&#22312;&#36941;&#21382;collection&#30340;&#26102;&#20505;&#32423;&#32852;&#25805;&#20316;&#20173;&#28982;&#20250;&#25191;&#34892;&#12290;&#22914;&#26524;&#20320;&#24819;&#35201;&#36890;&#36807;&#32423;&#32852;&#36827;&#34892;&#23376;&#23545;&#35937;&#30340;&#25554;&#20837;&#12289;&#21024;&#38500;&#12289;&#26356;&#26032;&#25805;&#20316;&#65292;&#23601;&#24517;&#39035;&#25226;&#23427;&#21152;&#21040;collection&#20013;&#65292;&#21482;&#35843;&#29992;<tt class="literal">setParent()</tt>&#26159;&#19981;&#22815;&#30340;&#12290;     </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="example-parentchild-update"></a>16.4.&nbsp;&#32423;&#32852;&#26356;&#26032;&#65288;Using cascading <tt class="literal">update()</tt>&#65289;</h2></div></div><div></div></div><p>         &#20551;&#35774;&#25105;&#20204;&#20174;<tt class="literal">Session</tt>&#20013;&#35013;&#20837;&#20102;&#19968;&#20010;<tt class="literal">Parent</tt>&#23545;&#35937;&#65292;&#29992;&#25143;&#30028;&#38754;&#23545;&#20854;&#36827;&#34892;&#20102;&#20462;&#25913;&#65292;&#28982;&#21518;&#25105;&#20204;&#24076;&#26395;&#22312;&#19968;&#20010;&#26032;&#30340;Session&#37324;&#38754;&#35843;&#29992;<tt class="literal">update()</tt>&#26469;&#26356;&#26032;&#23427;&#12290;&#23545;&#35937;<tt class="literal">Parent</tt>&#21253;&#21547;&#20102;&#23376;&#23545;&#35937;&#30340;&#38598;&#21512;&#65292;&#30001;&#20110;&#25171;&#24320;&#20102;&#32423;&#32852;&#26356;&#26032;&#65292;Hibernate&#38656;&#35201;&#30693;&#36947;&#21738;&#20123;&#23376;&#23545;&#35937;&#26159;&#26032;&#30340;&#65292;&#21738;&#20123;&#26159;&#25968;&#25454;&#24211;&#20013;&#24050;&#32463;&#23384;&#22312;&#30340;&#12290;&#25105;&#20204;&#20551;&#35774;<tt class="literal">Parent</tt>&#21644;<tt class="literal">Child</tt>&#23545;&#35937;&#30340;&#26631;&#35782;&#23646;&#24615;&#30340;&#31867;&#22411;&#20026;<tt class="literal">java.lang.Long</tt>&#12290;Hibernate&#20250;&#20351;&#29992;&#26631;&#35782;&#23646;&#24615;&#30340;&#20540;&#26469;&#21028;&#26029;&#21738;&#20123;&#23376;&#23545;&#35937;&#26159;&#26032;&#30340;&#12290;(&#20320;&#20063;&#21487;&#20197;&#20351;&#29992;version &#25110; timestamp &#23646;&#24615;&#65292;&#21442;&#35265;<a href="manipulatingdata.html#manipulatingdata-updating-detached" title="9.4.2.&nbsp;&#26356;&#26032;&#20174;session&#33073;&#31163;&#30340;&#23545;&#35937;">&#31532;&nbsp;9.4.2&nbsp;&#33410; &#8220;&#26356;&#26032;&#20174;session&#33073;&#31163;&#30340;&#23545;&#35937;&#8221;</a>.)     </p><p>         <tt class="literal">unsaved-value</tt>&#23646;&#24615;&#26159;&#29992;&#26469;&#34920;&#31034;&#26032;&#23454;&#20363;&#30340;&#26631;&#35782;&#23646;&#24615;&#20540;&#30340;&#65292;&#32570;&#30465;&#20026;"null"&#65292;&#29992;&#22312;<tt class="literal">Long</tt>&#31867;&#22411;&#30340;&#26631;&#35782;&#31867;&#22411;&#20877;&#22909;&#19981;&#36807;&#20102;&#12290;&#22914;&#26524;&#25105;&#20204;&#20351;&#29992;&#21407;&#22987;&#31867;&#22411;&#20316;&#20026;&#26631;&#35782;&#31867;&#22411;&#30340;&#35805;&#65292;&#25105;&#20204;&#22312;&#37197;&#32622;<tt class="literal">Child</tt>&#31867;&#26144;&#23556;&#30340;&#26102;&#20505;&#23601;&#24517;&#39035;&#20889;&#65306;     </p><pre class="programlisting">&lt;id name="id" type="long" unsaved-value="0"&gt;</pre><p>         (&#20026;&#29256;&#26412;&#21644;&#26102;&#38388;&#25139;&#23646;&#24615;&#36827;&#34892;&#26144;&#23556;&#65292;&#20063;&#20250;&#26377;&#21478;&#19968;&#20010;&#21483;&#20570;<tt class="literal">unsaved-value</tt>&#30340;&#23646;&#24615;&#12290;)     </p><p>         &#19979;&#38754;&#30340;&#20195;&#30721;&#20250;&#26356;&#26032;<tt class="literal">parent</tt>&#21644;<tt class="literal">child</tt>&#23545;&#35937;&#65292;&#24182;&#19988;&#25554;&#20837;<tt class="literal">newChild</tt>&#23545;&#35937;&#12290;     </p><pre class="programlisting">//parent and child were both loaded in a previous sessionparent.addChild(child);Child newChild = new Child();parent.addChild(newChild);session.update(parent);session.flush();</pre><p>         &#22909;&#30340;&#65292;&#23545;&#20110;&#33258;&#21160;&#29983;&#25104;&#26631;&#35782;&#30340;&#24773;&#20917;&#36825;&#26679;&#20570;&#24456;&#26041;&#20415;&#65292;&#20294;&#26159;&#33258;&#20998;&#37197;&#30340;&#26631;&#35782;&#21644;&#22797;&#21512;&#26631;&#35782;&#24590;&#20040;&#21150;&#21602;&#65311;&#36825;&#26159;&#26377;&#28857;&#40635;&#28902;&#65292;&#22240;&#20026;unsaved-value&#26080;&#27861;&#21306;&#20998;&#26032;&#23545;&#35937;&#65288;&#26631;&#35782;&#26159;&#29992;&#25143;&#25351;&#23450;&#30340;&#65289;&#21644;&#21069;&#19968;&#20010;Session&#35013;&#20837;&#30340;&#23545;&#35937;&#12290;&#22312;&#36825;&#31181;&#24773;&#20917;&#19979;&#65292;&#20320;&#21487;&#33021;&#38656;&#35201;&#32473;Hibernate&#19968;&#20123;&#25552;&#31034;&#65292;&#22312;&#35843;&#29992;<tt class="literal">update(parent)</tt>&#20043;&#21069;&#65306;     </p><div class="itemizedlist"><ul type="disc"><li><p>             &#22312;&#36825;&#20010;&#31867;&#30340;<tt class="literal">&lt;version&gt;</tt> or <tt class="literal">&lt;timestamp&gt;</tt>&#23646;&#24615;&#26144;&#23556;&#19978;&#23450;&#20041;<tt class="literal">unsaved-value="null"</tt>&#25110;&#32773;<tt class="literal">unsaved-value="negative"</tt>&#12290;         </p></li><li><p>             &#22312;&#23545;&#29238;&#23545;&#35937;&#25191;&#34892;<tt class="literal">update(parent)</tt>&#20043;&#21069;&#65292;&#35774;&#23450;<tt class="literal">unsaved-value="none"</tt>&#24182;&#19988;&#26174;&#24335;&#30340;&#35843;&#29992;<tt class="literal">save()</tt>&#22312;&#25968;&#25454;&#24211;&#21019;&#24314;&#26032;&#23376;&#23545;&#35937;         </p></li><li><p>             &#22312;&#23545;&#29238;&#23545;&#35937;&#25191;&#34892;<tt class="literal">update(parent)</tt>&#20043;&#21069;&#65292;&#35774;&#23450;<tt class="literal">unsaved-value="any"</tt>&#24182;&#19988;&#26174;&#24335;&#30340;&#35843;&#29992;<tt class="literal">update()</tt>&#26356;&#26032;&#24050;&#32463;&#35013;&#20837;&#30340;&#23376;&#23545;&#35937;         </p></li></ul></div><p>		<tt class="literal">none</tt>&#26159;&#33258;&#20998;&#37197;&#26631;&#35782;&#21644;&#22797;&#21512;&#26631;&#35782;&#30340;<tt class="literal">unsaved-value</tt>&#30340;&#32570;&#30465;&#20540;&#12290;     </p><p>         &#36824;&#26377;&#19968;&#31181;&#21487;&#33021;&#24773;&#20917;&#65292;&#26377;&#19968;&#20010;&#21517;&#20026;<tt class="literal">isUnsaved()</tt>&#30340;<tt class="literal">&#25318;&#25130;&#22120;&#65288;Interceptor&#65289;</tt>&#26041;&#27861;&#65292;&#23427;&#20801;&#35768;&#24212;&#29992;&#31243;&#24207;&#33258;&#24049;&#23454;&#29616;&#26032;&#23454;&#20363;&#30340;&#21028;&#26029;&#12290;&#27604;&#22914;&#65292;&#20320;&#21487;&#20197;&#33258;&#24049;&#23450;&#20041;&#19968;&#20010;&#25345;&#20037;&#31867;&#30340;&#31062;&#20808;&#31867;&#65306;     </p><pre class="programlisting">public class Persistent {    private boolean _saved = false;    public void onSave() {        _saved=true;    }    public void onLoad() {        _saved=true;    }    ......    public boolean isSaved() {        return _saved;    }}</pre><p>     	&#65288;<tt class="literal">saved</tt>&#23646;&#24615;&#26159;&#19981;&#20250;&#34987;&#25345;&#20037;&#21270;&#30340;&#12290;)     	&#29616;&#22312;&#22312;<tt class="literal">onLoad()</tt>&#21644;<tt class="literal">onSave()</tt>&#22806;&#65292;&#36824;&#35201;&#23454;&#29616;<tt class="literal">isUnsaved()</tt>&#12290;     </p><pre class="programlisting">public Boolean isUnsaved(Object entity) {    if (entity instanceof Persistent) {        return new Boolean( !( (Persistent) entity ).isSaved() );    }    else {        return null;    }}public boolean onLoad(Object entity,     Serializable id,    Object[] state,    String[] propertyNames,    Type[] types) {    if (entity instanceof Persistent) ( (Persistent) entity ).onLoad();    return false;}public boolean onSave(Object entity,    Serializable id,    Object[] state,    String[] propertyNames,    Type[] types) {            if (entity instanceof Persistent) ( (Persistent) entity ).onSave();    return false;}</pre></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="example-parentchild-conclusion"></a>16.5.&nbsp;&#32467;&#35770;</h2></div></div><div></div></div><p>         &#36825;&#20010;&#38382;&#39064;&#24448;&#24448;&#35753;&#26032;&#25163;&#24863;&#21040;&#36855;&#24785;&#65292;&#23427;&#30830;&#23454;&#19981;&#22826;&#23481;&#26131;&#28040;&#21270;&#12290;&#19981;&#36807;&#65292;&#32463;&#36807;&#19968;&#20123;&#23454;&#36341;&#20197;&#21518;&#65292;&#20320;&#20250;&#24863;&#35273;&#36234;&#26469;&#36234;&#39034;&#25163;&#12290;&#29238;&#23376;&#23545;&#35937;&#27169;&#24335;&#24050;&#32463;&#34987;&#24191;&#27867;&#30340;&#24212;&#29992;&#22312;Hibernate&#24212;&#29992;&#31243;&#24207;&#20013;&#12290;     </p><p>         &#22312;&#31532;&#19968;&#27573;&#20013;&#25105;&#20204;&#26366;&#32463;&#25552;&#21040;&#21478;&#19968;&#20010;&#26041;&#26696;&#12290;&#22797;&#21512;&#20803;&#32032;&#30340;&#35821;&#20041;&#19982;&#29238;&#23376;&#20851;&#31995;&#26159;&#31561;&#21516;&#30340;&#65292;&#20294;&#26159;&#25105;&#20204;&#24182;&#27809;&#26377;&#35814;&#32454;&#35752;&#35770;&#12290;&#24456;&#19981;&#24184;&#22797;&#21512;&#20803;&#32032;&#36824;&#26377;&#20004;&#20010;&#37325;&#22823;&#38480;&#21046;:&#22797;&#21512;&#20803;&#32032;&#19981;&#33021;&#25317;&#26377;collections&#65292;&#24182;&#19988;&#65292;&#38500;&#20102;&#29992;&#20110;&#24799;&#19968;&#30340;&#29238;&#23545;&#35937;&#22806;&#65292;&#23427;&#20204;&#19981;&#33021;&#20877;&#20316;&#20026;&#20854;&#23427;&#20219;&#20309;&#23454;&#20307;&#30340;&#23376;&#23545;&#35937;&#12290;&#65288;&#20294;&#26159;&#65292;&#36890;&#36807;&#20351;&#29992;<tt class="literal">&lt;idbag&gt;</tt>&#26144;&#23556;&#65292;&#23427;&#20204;<span class="emphasis"><em>&#21487;&#33021;</em></span>&#25317;&#26377;&#20195;&#29702;&#20027;&#38190;&#12290;&#65289;     </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="toolsetguide.html">&#19978;&#19968;&#39029;</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="index.html">&#19978;&#19968;&#32423;</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="example-weblog.html">&#19979;&#19968;&#39029;</a></td></tr><tr><td width="40%" align="left" valign="top">&#31532;&nbsp;15&nbsp;&#31456;&nbsp;&#24037;&#20855;&#31665;&#25351;&#21335;&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">&#36215;&#22987;&#39029;</a></td><td width="40%" align="right" valign="top">&nbsp;&#31532;&nbsp;17&nbsp;&#31456;&nbsp;&#31034;&#20363;&#65306;Weblog &#24212;&#29992;&#31243;&#24207;</td></tr></table></div></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -