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

📄 persistent-classes.html

📁 是一个中文的Hibernate库文档
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<html><head>      <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">   <title>&#31532;&nbsp;5&nbsp;&#31456;&nbsp;&#25345;&#20037;&#21270;&#31867;(Persistent Classes)</title><link rel="stylesheet" href="../shared/css/html.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.65.1"><link rel="home" href="index.html" title="HIBERNATE - &#31526;&#21512;Java&#20064;&#24815;&#30340;&#20851;&#31995;&#25968;&#25454;&#24211;&#25345;&#20037;&#21270;"><link rel="up" href="index.html" title="HIBERNATE - &#31526;&#21512;Java&#20064;&#24815;&#30340;&#20851;&#31995;&#25968;&#25454;&#24211;&#25345;&#20037;&#21270;"><link rel="previous" href="session-configuration.html" title="&#31532;&nbsp;4&nbsp;&#31456;&nbsp;&#xA;        &#37197;&#32622;&#xA;    "><link rel="next" href="mapping.html" title="&#31532;&nbsp;6&nbsp;&#31456;&nbsp;&#23545;&#35937;/&#20851;&#31995;&#25968;&#25454;&#24211;&#26144;&#23556;&#22522;&#30784;(Basic O/R Mapping)"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">&#31532;&nbsp;5&nbsp;&#31456;&nbsp;&#25345;&#20037;&#21270;&#31867;(Persistent Classes)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="session-configuration.html">&#19978;&#19968;&#39029;</a>&nbsp;</td><th width="60%" align="center">&nbsp;</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="mapping.html">&#19979;&#19968;&#39029;</a></td></tr></table><hr></div><div class="chapter" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title"><a name="persistent-classes"></a>&#31532;&nbsp;5&nbsp;&#31456;&nbsp;&#25345;&#20037;&#21270;&#31867;(Persistent Classes)</h2></div></div><div></div></div><p>        &#22312;&#24212;&#29992;&#31243;&#24207;&#20013;&#65292;&#29992;&#26469;&#23454;&#29616;&#19994;&#21153;&#38382;&#39064;&#23454;&#20307;&#30340;&#65288;&#22914;&#65292;&#22312;&#30005;&#23376;&#21830;&#21153;&#24212;&#29992;&#31243;&#24207;&#20013;&#30340;Customer&#21644;Order&#65289;        &#31867;&#23601;&#26159;&#25345;&#20037;&#21270;&#31867;&#12290;&#19981;&#33021;&#35748;&#20026;&#25152;&#26377;&#30340;&#25345;&#20037;&#21270;&#31867;&#30340;&#23454;&#20363;&#37117;&#26159;&#25345;&#20037;&#30340;&#29366;&#24577;&#8212;&#8212;&#19968;&#20010;&#23454;&#20363;&#30340;&#29366;&#24577;&#20063;&#21487;&#33021;        &#26159;&#30636;&#26102;&#30340;&#25110;&#33073;&#31649;&#30340;&#12290;   </p><p>        &#22914;&#26524;&#36825;&#20123;&#25345;&#20037;&#21270;&#31867;&#36981;&#24490;&#19968;&#20123;&#31616;&#21333;&#30340;&#35268;&#21017;&#65292;Hibernate&#33021;&#22815;&#24037;&#20316;&#24471;&#26368;&#22909;&#65292;&#36825;&#20123;&#35268;&#21017;&#34987;&#31216;&#20316;&#65292;        &#31616;&#21333;&#20256;&#32479;Java&#23545;&#35937;(POJO:Plain Old Java Object)&#32534;&#31243;&#27169;&#22411;&#12290;&#20294;&#26159;&#36825;&#20123;&#35268;&#21017;&#27809;&#26377;&#19968;&#20010;&#26159;&#24517;&#38656;&#30340;&#12290;        &#23454;&#38469;&#19978;&#65292;Hibernate3&#23545;&#20110;&#20320;&#30340;&#25345;&#20037;&#21270;&#31867;&#20960;&#20046;&#19981;&#20570;&#20219;&#20309;&#35774;&#24819;&#12290;&#20320;&#21487;&#20197;&#29992;&#20854;&#20182;&#30340;&#26041;&#27861;&#26469;&#34920;&#36798;&#39046;&#22495;&#27169;&#22411;&#65306;        &#27604;&#22914;&#65292;&#20351;&#29992;<tt class="literal">Map</tt>&#23454;&#20363;&#30340;&#26641;&#22411;&#32467;&#26500;&#12290;    </p><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="persistent-classes-pojo"></a>5.1.&nbsp;&#19968;&#20010;&#31616;&#21333;&#30340;POJO&#20363;&#23376;</h2></div></div><div></div></div><p>            &#22823;&#22810;&#25968;Java&#31243;&#24207;&#38656;&#35201;&#29992;&#19968;&#20010;&#25345;&#20037;&#21270;&#31867;&#26469;&#34920;&#31034;&#29483;&#31185;&#21160;&#29289;&#12290;        </p><pre class="programlisting">package eg;import java.util.Set;import java.util.Date;public class Cat {    private Long id; // identifier    private Date birthdate;    private Color color;    private char sex;    private float weight;    private int litterId;    private Cat mother;    private Set kittens = new HashSet();    private void setId(Long id) {        this.id=id;    }    public Long getId() {        return id;    }    void setBirthdate(Date date) {        birthdate = date;    }    public Date getBirthdate() {        return birthdate;    }    void setWeight(float weight) {        this.weight = weight;    }    public float getWeight() {        return weight;    }    public Color getColor() {        return color;    }    void setColor(Color color) {        this.color = color;    }    void setSex(char sex) {        this.sex=sex;    }    public char getSex() {        return sex;    }    void setLitterId(int id) {        this.litterId = id;    }    public int getLitterId() {        return litterId;    }    void setMother(Cat mother) {        this.mother = mother;    }    public Cat getMother() {        return mother;    }    void setKittens(Set kittens) {        this.kittens = kittens;    }    public Set getKittens() {        return kittens;    }        // addKitten not needed by Hibernate    public void addKitten(Cat kitten) {    	kitten.setMother(this);	kitten.setLitterId( kittens.size() );         kittens.add(kitten);    }}</pre><p>            &#36825;&#37324;&#35201;&#36981;&#24490;&#22235;&#26465;&#20027;&#35201;&#30340;&#35268;&#21017;&#65306;        </p><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="persistent-classes-pojo-accessors"></a>5.1.1.&nbsp;&#20026;&#25345;&#20037;&#21270;&#23383;&#27573;&#22768;&#26126;&#35775;&#38382;&#22120;(accessors)&#21644;&#26159;&#21542;&#21487;&#21464;&#30340;&#26631;&#24535;(mutators)</h3></div></div><div></div></div><p>                <tt class="literal">Cat</tt>&#20026;&#23427;&#30340;&#25152;&#26377;&#25345;&#20037;&#21270;&#23383;&#27573;&#22768;&#26126;&#20102;&#35775;&#38382;&#26041;&#27861;&#12290;&#24456;&#22810;&#20854;&#20182;ORM&#24037;&#20855;&#30452;&#25509;&#23545;                &#23454;&#20363;&#21464;&#37327;&#36827;&#34892;&#25345;&#20037;&#21270;&#12290;&#25105;&#20204;&#30456;&#20449;&#20174;&#25345;&#20037;&#21270;&#26426;&#21046;&#20013;&#20998;&#31163;&#36825;&#31181;&#23454;&#29616;&#32454;&#33410;&#35201;&#22909;&#24471;&#22810;&#12290;                Hibernate&#25345;&#20037;&#21270;JavaBeans&#39118;&#26684;&#30340;&#23646;&#24615;&#65292;&#35748;&#21487;&#22914;&#19979;&#24418;&#24335;&#30340;&#26041;&#27861;&#21517;&#65306;                <tt class="literal">getFoo</tt>, <tt class="literal">isFoo</tt> &#21644; <tt class="literal">setFoo</tt>&#12290;                &#22914;&#26524;&#38656;&#35201;&#65292;&#20320;&#24635;&#26159;&#21487;&#20197;&#20999;&#25442;&#29305;&#23450;&#30340;&#23646;&#24615;&#30340;&#25351;&#31034;&#23383;&#27573;&#30340;&#35775;&#38382;&#26041;&#27861;&#12290;            </p><p>                &#23646;&#24615;<span class="emphasis"><em>&#19981;&#38656;&#35201;</em></span>&#35201;&#22768;&#26126;&#20026;public&#30340;&#12290;Hibernate&#40664;&#35748;&#20351;&#29992;                <tt class="literal">protected</tt>&#25110;<tt class="literal">private</tt>&#30340;get/set&#26041;&#27861;&#23545;&#65292;                &#23545;&#23646;&#24615;&#36827;&#34892;&#25345;&#20037;&#21270;&#12290;            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="persistent-classes-pojo-constructor"></a>5.1.2.&nbsp;&#23454;&#29616;&#19968;&#20010;&#40664;&#35748;&#30340;&#65288;&#21363;&#26080;&#21442;&#25968;&#30340;&#65289;&#26500;&#36896;&#26041;&#27861;&#65288;constructor&#65289;</h3></div></div><div></div></div><p>                <tt class="literal">Cat</tt>&#26377;&#19968;&#20010;&#26080;&#21442;&#25968;&#30340;&#26500;&#36896;&#26041;&#27861;&#12290;&#25152;&#26377;&#30340;&#25345;&#20037;&#21270;&#31867;&#37117;&#24517;&#39035;&#26377;&#19968;&#20010;                &#40664;&#35748;&#30340;&#26500;&#36896;&#26041;&#27861;&#65288;&#21487;&#20197;&#19981;&#26159;public&#30340;&#65289;&#65292;&#36825;&#26679;&#30340;&#35805;Hibernate&#23601;&#21487;&#20197;&#20351;&#29992;                <tt class="literal">Constructor.newInstance()</tt>&#26469;&#23454;&#20363;&#21270;&#23427;&#20204;&#12290;                &#25105;&#20204;&#24314;&#35758;&#65292;&#22312;Hibernate&#20013;&#65292;&#20026;&#20102;&#36816;&#34892;&#26399;&#20195;&#29702;&#30340;&#29983;&#25104;&#65292;&#26500;&#36896;&#26041;&#27861;&#33267;&#23569;&#26159;                <span class="emphasis"><em>&#21253;(package)</em></span>&#20869;&#21487;&#35265;&#30340;&#12290;            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="persistent-classes-pojo-identifier"></a>5.1.3.&nbsp;&#25552;&#20379;&#19968;&#20010;&#26631;&#35782;&#23646;&#24615;&#65288;identifier property&#65289;&#65288;&#21487;&#36873;&#65289; </h3></div></div><div></div></div><p>                <tt class="literal">Cat</tt>&#26377;&#19968;&#20010;&#23646;&#24615;&#21483;&#20570;<tt class="literal">id</tt>&#12290;&#36825;&#20010;&#23646;&#24615;&#26144;&#23556;&#25968;&#25454;&#24211;&#34920;&#30340;&#20027;                &#38190;&#23383;&#27573;&#12290;&#36825;&#20010;&#23646;&#24615;&#21487;&#20197;&#21483;&#20219;&#20309;&#21517;&#23383;&#65292;&#20854;&#31867;&#22411;&#21487;&#20197;&#26159;&#20219;&#20309;&#30340;&#21407;&#22987;&#31867;&#22411;&#12289;&#21407;&#22987;&#31867;&#22411;&#30340;&#21253;&#35013;&#31867;&#22411;&#12289;                <tt class="literal">java.lang.String</tt> &#25110;&#32773;&#26159; <tt class="literal">java.util.Date</tt>&#12290;                &#65288;&#22914;&#26524;&#20320;&#30340;&#32769;&#24335;&#25968;&#25454;&#24211;&#34920;&#26377;&#32852;&#21512;&#20027;&#38190;&#65292;&#20320;&#29978;&#33267;&#21487;&#20197;&#29992;&#19968;&#20010;&#29992;&#25143;&#33258;&#23450;&#20041;&#30340;&#31867;&#65292;&#35813;&#31867;&#25317;&#26377;&#36825;&#20123;&#31867;&#22411;                &#30340;&#23646;&#24615;&#12290;&#21442;&#35265;&#21518;&#38754;&#30340;&#20851;&#20110;&#32852;&#21512;&#26631;&#35782;&#31526;&#30340;&#31456;&#33410;&#12290;&#65289;            </p><p>                &#26631;&#35782;&#31526;&#23646;&#24615;&#26159;&#21487;&#36873;&#30340;&#12290;&#21487;&#20197;&#19981;&#29992;&#31649;&#23427;&#65292;&#35753;Hibernate&#20869;&#37096;&#26469;&#36861;&#36394;&#23545;&#35937;&#30340;&#35782;&#21035;&#12290;                &#19981;&#25512;&#33616;&#20351;&#29992;&#36825;&#20010;&#23646;&#24615;&#12290;            </p><p>                &#23454;&#38469;&#19978;&#65292;&#19968;&#20123;&#21151;&#33021;&#21482;&#23545;&#37027;&#20123;&#22768;&#26126;&#20102;&#26631;&#35782;&#31526;&#23646;&#24615;&#30340;&#31867;&#36215;&#20316;&#29992;&#65306;            </p><div class="itemizedlist"><ul type="disc" compact><li><p>                        &#25176;&#31649;&#23545;&#35937;&#30340;&#20256;&#25773;&#24615;&#37325;&#26032;&#65288;&#21644;session&#65289;&#20851;&#32852;&#65288;&#32423;&#32852;&#26356;&#26032;&#25110;&#32423;&#32852;&#21512;&#24182;&#65289;                        &#8212;&#8212;&#21442;&#38405; <a href="objectstate.html#objectstate-transitive" title="11.11.&nbsp;&#20256;&#25773;&#24615;&#25345;&#20037;&#21270;(transitive persistence)">&#31532;&nbsp;11.11&nbsp;&#33410; &#8220;&#20256;&#25773;&#24615;&#25345;&#20037;&#21270;(transitive persistence)&#8221;</a>                    </p></li><li><p>                        <tt class="literal">Session.saveOrUpdate()</tt>                    </p></li><li><p>                        <tt class="literal">Session.merge()</tt>                    </p></li></ul></div><p>								&#25105;&#20204;&#24314;&#35758;&#20320;&#23545;&#25345;&#20037;&#21270;&#31867;&#22768;&#26126;&#21629;&#21517;&#19968;&#33268;&#30340;&#26631;&#35782;&#23646;&#24615;&#12290;&#25105;&#20204;&#36824;&#24314;&#35758;&#20320;&#20351;&#29992;&#19968;								&#20010;&#21487;&#20197;&#20026;&#31354;&#65288;&#20063;&#23601;&#26159;&#35828;&#65292;&#19981;&#26159;&#21407;&#22987;&#31867;&#22411;&#65289;&#30340;&#31867;&#22411;&#12290;            </p></div><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="persistent-classes-pojo-final"></a>5.1.4.&nbsp;&#20351;&#29992;&#38750;final&#30340;&#31867; (&#21487;&#36873;)</h3></div></div><div></div></div><p>            	<span class="emphasis"><em>&#20195;&#29702;&#65288;proxies&#65289;</em></span>&#26159;Hibernate&#30340;&#19968;&#20010;&#37325;&#35201;&#30340;&#21151;&#33021;&#65292;&#23427;&#20381;&#36182;&#30340;&#26465;&#20214;&#26159;&#65292;&#25345;&#20037;            	&#21270;&#31867;&#25110;&#32773;&#26159;&#38750;final&#30340;&#65292;&#25110;&#32773;&#26159;&#23454;&#29616;&#20102;&#19968;&#20010;&#25152;&#26377;&#26041;&#27861;&#37117;&#22768;&#26126;&#20026;public&#30340;&#25509;&#21475;&#12290;            </p><p>            	&#20320;&#21487;&#20197;&#29992;Hibernate&#25345;&#20037;&#21270;&#19968;&#20010;&#27809;&#26377;&#23454;&#29616;&#20219;&#20309;&#25509;&#21475;&#30340;<tt class="literal">final</tt>&#31867;&#65292;&#20294;&#26159;&#20320;            	&#19981;&#33021;&#20351;&#29992;&#20195;&#29702;&#26469;&#24310;&#36831;&#20851;&#32852;&#21152;&#36733;&#65292;&#36825;&#20250;&#38480;&#21046;&#20320;&#36827;&#34892;&#24615;&#33021;&#20248;&#21270;&#30340;&#36873;&#25321;&#12290;            </p><p> 								&#20320;&#20063;&#24212;&#35813;&#36991;&#20813;&#22312;&#38750;final&#31867;&#20013;&#22768;&#26126; <tt class="literal">public final</tt>&#30340;&#26041;&#27861;&#12290;&#22914;&#26524;&#20320;&#24819;&#20351;&#29992;&#19968;								&#20010;&#26377;<tt class="literal">public final</tt>&#26041;&#27861;&#30340;&#31867;&#65292;&#20320;&#24517;&#39035;&#36890;&#36807;&#35774;&#32622;<tt class="literal">lazy="false"</tt>								&#26469;&#26126;&#30830;&#30340;&#31105;&#29992;&#20195;&#29702;&#12290;						</p></div></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="persistent-classes-inheritance"></a>5.2.&nbsp;&#23454;&#29616;&#32487;&#25215;&#65288;Inheritance&#65289;</h2></div></div><div></div></div><p>            &#23376;&#31867;&#20063;&#24517;&#39035;&#36981;&#23432;&#31532;&#19968;&#26465;&#21644;&#31532;&#20108;&#26465;&#35268;&#21017;&#12290;&#23427;&#20174;&#36229;&#31867;<tt class="literal">Cat</tt>&#32487;&#25215;&#20102;&#26631;&#35782;&#23646;&#24615;&#12290;        </p><pre class="programlisting">package eg;public class DomesticCat extends Cat {        private String name;        public String getName() {                return name;        }        protected void setName(String name) {                this.name=name;        }}</pre></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="persistent-classes-equalshashcode"></a>5.3.&nbsp;&#23454;&#29616;<tt class="literal">equals()</tt>&#21644;<tt class="literal">hashCode()</tt></h2></div></div><div></div></div><p>            &#22914;&#26524;&#20320;&#26377;&#22914;&#19979;&#38656;&#27714;&#65292;&#20320;&#24517;&#39035;&#37325;&#36733;

⌨️ 快捷键说明

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