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

📄 persistent-classes.html

📁 图象处理
💻 HTML
📖 第 1 页 / 共 2 页
字号:
}</pre><p>            &#35760;&#20303;&#25105;&#20204;&#30340;&#20505;&#36873;&#20851;&#38190;&#23383;&#65288;&#36825;&#20010;&#20363;&#23376;&#20013;&#26159;&#21517;&#23383;&#21644;&#29983;&#26085;&#30340;&#32452;&#21512;&#65289;&#21482;&#22312;&#29305;&#23450;&#30340;&#27604;&#36739;&#25805;&#20316;&#20013;&#26377;&#25928;&#65288;&#21487;&#33021;&#21482;&#22312;&#19968;&#20010;&#29992;&#20363;&#20013;&#65289;&#12290;&#25105;&#20204;&#19981;&#38656;&#35201;&#25105;&#20204;&#36890;&#24120;&#29992;&#20110;&#27491;&#24335;&#20027;&#38190;&#37027;&#20040;&#20005;&#26684;&#31283;&#23450;&#30340;&#26465;&#20214;&#12290;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="persistent-classes-lifecycle"></a>4.4.&nbsp;&#25345;&#20037;&#21270;&#29983;&#21629;&#21608;&#26399;&#65288;Lifecycle&#65289;&#20013;&#30340;&#22238;&#35843;&#65288;Callbacks&#65289;</h2></div></div><div></div></div><p>            &#20316;&#20026;&#19968;&#20010;&#21487;&#36873;&#30340;&#27493;&#39588;&#65292;&#21487;&#25345;&#20037;&#21270;&#31867;&#21487;&#20197;&#23454;&#29616;<tt class="literal">Lifecycle</tt>&#25509;&#21475;&#65292;&#23427;&#21487;&#20197;&#25552;&#20379;&#19968;&#20123;&#29992;&#20110;&#22238;&#35843;&#30340;&#26041;&#27861;&#65292;&#21487;&#20197;&#35753;&#25345;&#20037;&#21270;&#23545;&#35937;&#22312;save&#25110;load&#20043;&#21518;&#65292;&#25110;&#32773;&#22312;delete&#25110;update&#20043;&#21069;&#36827;&#34892;&#24517;&#35201;&#30340;&#21021;&#22987;&#21270;&#19982;&#28165;&#38500;&#27493;&#39588;&#12290;        </p><p>                        Hibernate <tt class="literal">Interceptor</tt>&#65288;&#25318;&#25130;&#22120;&#65289;&#36824;&#25552;&#20379;&#20102;&#19968;&#31181;&#36739;&#23569;&#24178;&#25200;&#30340;&#26367;&#20195;&#26041;&#27861;&#12290;        </p><div class="programlistingco"><pre class="programlisting">public interface Lifecycle {        public boolean onSave(Session s) throws CallbackException;   <span class="co">(1)</span>        public boolean onUpdate(Session s) throws CallbackException; <span class="co">(2)</span>        public boolean onDelete(Session s) throws CallbackException; <span class="co">(3)</span>        public void onLoad(Session s, Serializable id);              <span class="co">(4)</span>}</pre><div class="calloutlist"><table border="0" summary="Callout list"><tr><td width="5%" valign="top" align="left">(1)</td><td valign="top" align="left"><p>                        <tt class="literal">onSave</tt> - &#22312;&#23545;&#35937;&#21363;&#23558;&#34987;save&#25110;&#32773;insert&#30340;&#26102;&#20505;&#22238;&#35843;                                            </p></td></tr><tr><td width="5%" valign="top" align="left">(2)</td><td valign="top" align="left"><p>                        <tt class="literal">onUpdate</tt> - &#22312;&#23545;&#35937;&#21363;&#23558;&#34987;update&#30340;&#26102;&#20505;&#22238;&#35843;&#65288;&#20063;&#23601;&#26159;&#23545;&#35937;&#34987;&#20256;&#36882;&#32473;<tt class="literal">Session.update()</tt>&#30340;&#26102;&#20505;)                    </p></td></tr><tr><td width="5%" valign="top" align="left">(3)</td><td valign="top" align="left"><p>                        <tt class="literal">onDelete</tt> - &#22312;&#23545;&#35937;&#21363;&#23558;&#34987;delete(&#21024;&#38500;)&#30340;&#26102;&#20505;&#22238;&#35843;                    </p></td></tr><tr><td width="5%" valign="top" align="left">(4)</td><td valign="top" align="left"><p>                        <tt class="literal">onLoad</tt> - &#22312;&#23545;&#35937;&#21018;&#21018;&#34987;load(&#35013;&#36733;)&#21518;&#30340;&#26102;&#20505;&#22238;&#35843;                    </p></td></tr></table></div></div><p>            <tt class="literal">onSave()</tt>, <tt class="literal">onDelete()</tt> &#21644; <tt class="literal">onUpdate()</tt> &#21487;&#20197;&#34987;&#29992;&#26469;&#32423;&#32852;&#20445;&#23384;&#25110;&#32773;&#21024;&#38500;&#20381;&#36182;&#30340;&#23545;&#35937;&#12290;&#36825;&#31181;&#20570;&#27861;&#26159;&#22312;&#26144;&#23556;&#25991;&#20214;&#20013;&#22768;&#26126;&#32423;&#32852;&#25805;&#20316;&#22806;&#30340;&#21478;&#22806;&#19968;&#31181;&#36873;&#25321;&#12290;<tt class="literal">onLoad()</tt>&#21487;&#20197;&#29992;&#26469;&#35753;&#23545;&#35937;&#20174;&#20854;&#25345;&#20037;&#21270;&#65288;&#24403;&#21069;&#65289;&#29366;&#24577;&#20013;&#21021;&#22987;&#21270;&#26576;&#20123;&#26242;&#26102;&#30340;&#23646;&#24615;&#12290;&#19981;&#33021;&#29992;&#36825;&#31181;&#26041;&#24335;&#26469;&#35013;&#36733;&#20381;&#36182;&#30340;&#23545;&#35937;&#65292;&#22240;&#20026;&#21487;&#33021;&#26080;&#27861;&#22312;&#27492;&#26041;&#27861;&#20869;&#37096;&#35843;&#29992;<tt class="literal">Session</tt>&#25509;&#21475;&#12290; <tt class="literal">onLoad()</tt>, <tt class="literal">onSave()</tt>&#21644; <tt class="literal">onUpdate()</tt>&#21478;&#19968;&#31181;&#29992;&#27861;&#26159;&#29992;&#26469;&#22312;&#24403;&#21069;<tt class="literal">Session</tt>&#20013;&#20445;&#23384;&#19968;&#20010;&#24341;&#29992;&#65292;&#24050;&#22791;&#21518;&#29992;&#12290;                    </p><p>            &#35831;&#27880;&#24847;<tt class="literal">onUpdate()</tt>&#24182;&#19981;&#26159;&#22312;&#27599;&#27425;&#23545;&#35937;&#30340;&#25345;&#20037;&#21270;&#29366;&#24577;&#34987;&#26356;&#26032;&#30340;&#26102;&#20505;&#23601;&#34987;&#35843;&#29992;&#30340;&#12290;&#23427;&#21482;&#22312;&#22788;&#20110;&#23578;&#26410;&#34987;&#25345;&#20037;&#21270;&#30340;&#23545;&#35937;&#34987;&#20256;&#36882;&#32473;<tt class="literal">Session.update()</tt>&#30340;&#26102;&#20505;&#25165;&#20250;&#34987;&#35843;&#29992;&#12290;        </p><p>           	&#22914;&#26524;<tt class="literal">onSave()</tt>, <tt class="literal">onUpdate()</tt> &#25110;&#32773;  <tt class="literal">onDelete()</tt>&#36820;&#22238;<tt class="literal">true</tt>&#65292;&#37027;&#20040;&#25805;&#20316;&#23601;&#34987;&#24708;&#24708;&#22320;&#21462;&#28040;&#20102;&#12290;&#22914;&#26524;&#20854;&#20013;&#25243;&#20986;&#20102;<tt class="literal">CallbackException</tt>&#24322;&#24120;&#65292;&#25805;&#20316;&#34987;&#21462;&#28040;&#65292;&#36825;&#20010;&#24322;&#24120;&#20250;&#34987;&#32487;&#32493;&#20256;&#36882;&#32473;&#24212;&#29992;&#31243;&#24207;&#12290;        </p><p>            &#35831;&#27880;&#24847;<tt class="literal">onSave()</tt>&#26159;&#22312;&#26631;&#35782;&#31526;&#24050;&#32463;&#34987;&#36171;&#20104;&#23545;&#35937;&#21518;&#35843;&#29992;&#30340;&#65292;&#38500;&#38750;&#26159;&#20351;&#29992;&#26412;&#22320;(native)&#26041;&#24335;&#29983;&#25104;&#20851;&#38190;&#23383;&#30340;&#12290;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="persistent-classes-validatable"></a>4.5.&nbsp;&#21512;&#27861;&#24615;&#26816;&#26597;&#65288;Validatable&#65289;&#22238;&#35843;</h2></div></div><div></div></div><p>            &#22914;&#26524;&#25345;&#20037;&#21270;&#31867;&#38656;&#35201;&#22312;&#20445;&#23384;&#20854;&#25345;&#20037;&#21270;&#29366;&#24577;&#21069;&#36827;&#34892;&#21512;&#27861;&#24615;&#26816;&#26597;&#65292;&#23427;&#21487;&#20197;&#23454;&#29616;&#19979;&#38754;&#30340;&#25509;&#21475;&#65306;        </p><pre class="programlisting">public interface Validatable {        public void validate() throws ValidationFailure;}</pre><p>            &#22914;&#26524;&#21457;&#29616;&#23545;&#35937;&#36829;&#21453;&#20102;&#26576;&#26465;&#35268;&#21017;&#65292;&#24212;&#35813;&#25243;&#20986;&#19968;&#20010;<tt class="literal">ValidationFailure</tt>&#24322;&#24120;&#12290;&#22312;<tt class="literal">Validatable</tt>&#23454;&#20363;&#30340;<tt class="literal">validate()</tt>&#26041;&#27861;&#20869;&#37096;&#19981;&#24212;&#35813;&#25913;&#21464;&#23427;&#30340;&#29366;&#24577;&#12290;        </p><p>            &#21644;<tt class="literal">Lifecycle</tt>&#25509;&#21475;&#30340;&#22238;&#35843;&#26041;&#27861;&#19981;&#21516;&#65292;<tt class="literal">validate()</tt>&#21487;&#33021;&#22312;&#20219;&#20309;&#26102;&#38388;&#34987;&#35843;&#29992;&#12290;&#24212;&#29992;&#31243;&#24207;&#19981;&#24212;&#35813;&#25226;<tt class="literal">validate()</tt>&#35843;&#29992;&#21644;&#21830;&#19994;&#21151;&#33021;&#32852;&#31995;&#36215;&#26469;&#12290;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="persistent-classes-xdoclet"></a>4.6.&nbsp;XDoclet&#26631;&#35760;&#31034;&#20363;</h2></div></div><div></div></div><p>            &#19979;&#19968;&#31456;&#20013;&#25105;&#20204;&#23558;&#20250;&#23637;&#31034;Hibernate&#26144;&#23556;&#26159;&#22914;&#20309;&#29992;&#31616;&#21333;&#30340;&#65292;&#21487;&#38405;&#35835;&#30340;XML&#26684;&#24335;&#34920;&#36798;&#30340;&#12290;&#24456;&#22810;Hibernate&#29992;&#25143;&#21916;&#27426;&#20351;&#29992;XDoclet&#30340;<tt class="literal">@hibernate.tags</tt>&#26631;&#31614;&#30452;&#25509;&#22312;&#28304;&#20195;&#30721;&#20013;&#23884;&#20837;&#26144;&#23556;&#20449;&#24687;&#12290;&#25105;&#20204;&#19981;&#20250;&#22312;&#36825;&#20221;&#25991;&#26723;&#20013;&#35752;&#35770;&#36825;&#20010;&#35805;&#39064;&#65292;&#22240;&#20026;&#20005;&#26684;&#30340;&#26469;&#35828;&#36825;&#23646;&#20110;XDoclet&#30340;&#19968;&#37096;&#20998;&#12290;&#20294;&#25105;&#20204;&#20173;&#28982;&#22312;&#36825;&#37324;&#32473;&#20986;&#19968;&#20221;&#24102;&#26377;XDoclet&#26144;&#23556;&#30340;<tt class="literal">Cat</tt>&#31867;&#30340;&#31034;&#20363;&#12290;        </p><pre class="programlisting">package eg;import java.util.Set;import java.util.Date;/** * @hibernate.class *  table="CATS" */public class Cat {    private Long id; // identifier    private Date birthdate;    private Cat mate;    private Set kittens    private Color color;    private char sex;    private float weight;    /**     * @hibernate.id     *  generator-class="native"     *  column="CAT_ID"     */    public Long getId() {        return id;    }    private void setId(Long id) {        this.id=id;    }    /**     * @hibernate.many-to-one     *  column="MATE_ID"     */    public Cat getMate() {        return mate;    }    void setMate(Cat mate) {        this.mate = mate;    }    /**     * @hibernate.property     *  column="BIRTH_DATE"     */    public Date getBirthdate() {        return birthdate;    }    void setBirthdate(Date date) {        birthdate = date;    }    /**     * @hibernate.property     *  column="WEIGHT"     */    public float getWeight() {        return weight;    }    void setWeight(float weight) {        this.weight = weight;    }    /**     * @hibernate.property     *  column="COLOR"     *  not-null="true"     */    public Color getColor() {        return color;    }    void setColor(Color color) {        this.color = color;    }    /**     * @hibernate.set     *  lazy="true"     *  order-by="BIRTH_DATE"     * @hibernate.collection-key     *  column="PARENT_ID"     * @hibernate.collection-one-to-many     */    public Set getKittens() {        return kittens;    }    void setKittens(Set kittens) {        this.kittens = kittens;    }    // addKitten not needed by Hibernate    public void addKitten(Cat kitten) {        kittens.add(kitten);    }    /**     * @hibernate.property     *  column="SEX"     *  not-null="true"     *  update="false"     */    public char getSex() {        return sex;    }    void setSex(char sex) {        this.sex=sex;    }}</pre></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="session-configuration.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="mapping.html">&#19979;&#19968;&#39029;</a></td></tr><tr><td width="40%" align="left" valign="top">&#31532;&nbsp;3&nbsp;&#31456;&nbsp;SessionFactory&#37197;&#32622;&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;5&nbsp;&#31456;&nbsp;O/R Mapping&#22522;&#30784;</td></tr></table></div></body></html>

⌨️ 快捷键说明

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