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

📄 objectstate.html

📁 是一个中文的Hibernate库文档
💻 HTML
📖 第 1 页 / 共 5 页
字号:
sess.flush(); //force the SQL INSERTsess.refresh(cat); //re-read the state (after the trigger executes)</pre><p>			&#27492;&#22788;&#36890;&#24120;&#20250;&#20986;&#29616;&#19968;&#20010;&#37325;&#35201;&#38382;&#39064;: Hibernate&#20250;&#20174;&#25968;&#25454;&#24211;&#20013;&#35013;&#36733;&#22810;&#23569;&#19996;&#35199;&#65311;&#20250;&#25191;&#34892;&#22810;&#23569;&#26465;&#30456;&#24212;&#30340;SQL<tt class="literal">SELECT</tt>&#35821;&#21477;&#65311;           	&#36825;&#21462;&#20915;&#20110;<span class="emphasis"><em>&#25235;&#21462;&#31574;&#30053;(fetching strategy)</em></span>&#65292;&#20250;&#22312;<a href="performance.html#performance-fetching" title="20.1.&nbsp;&#xA;	&#xA;			&#25235;&#21462;&#31574;&#30053;(Fetching strategies)&#xA;		">&#31532;&nbsp;20.1&nbsp;&#33410; &#8220;				&#25235;&#21462;&#31574;&#30053;(Fetching strategies)		&#8221;</a>&#20013;&#35299;&#37322;&#12290;        </p></div><div class="sect1" lang="zh-cn"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="objectstate-querying"></a>11.4.&nbsp;&#26597;&#35810;</h2></div></div><div></div></div><p>			&#22914;&#26524;&#19981;&#30693;&#36947;&#25152;&#35201;&#23547;&#25214;&#30340;&#23545;&#35937;&#30340;&#25345;&#20037;&#21270;&#26631;&#35782;&#65292;&#37027;&#20040;&#20320;&#38656;&#35201;&#20351;&#29992;&#26597;&#35810;&#12290;Hibernate&#25903;&#25345;&#24378;&#22823;&#19988;&#26131;&#20110;&#20351;&#29992;&#30340;&#38754;&#21521;&#23545;&#35937;&#26597;&#35810;&#35821;&#35328;(HQL)&#12290;			&#22914;&#26524;&#24076;&#26395;&#36890;&#36807;&#32534;&#31243;&#30340;&#26041;&#24335;&#21019;&#24314;&#26597;&#35810;&#65292;Hibernate&#25552;&#20379;&#20102;&#23436;&#21892;&#30340;&#25353;&#26465;&#20214;(Query By Criteria, QBC)&#20197;&#21450;&#25353;&#26679;&#20363;(Query By Example, QBE)&#36827;&#34892;&#26597;&#35810;&#30340;&#21151;&#33021;&#12290;			&#20320;&#20063;&#21487;&#20197;&#29992;&#21407;&#29983;SQL(native SQL)&#25551;&#36848;&#26597;&#35810;&#65292;Hibernate&#25552;&#20379;&#20102;&#23558;&#32467;&#26524;&#38598;(result set)&#36716;&#21270;&#20026;&#23545;&#35937;&#30340;&#37096;&#20998;&#25903;&#25345;&#12290;        </p><div class="sect2" lang="zh-cn"><div class="titlepage"><div><div><h3 class="title"><a name="objectstate-querying-executing"></a>11.4.1.&nbsp;&#25191;&#34892;&#26597;&#35810;</h3></div></div><div></div></div><p>                HQL&#21644;&#21407;&#29983;SQL(native SQL)&#26597;&#35810;&#35201;&#36890;&#36807;&#20026;<tt class="literal">org.hibernate.Query</tt>&#30340;&#23454;&#20363;&#26469;&#34920;&#36798;&#12290;				&#36825;&#20010;&#25509;&#21475;&#25552;&#20379;&#20102;&#21442;&#25968;&#32465;&#23450;&#12289;&#32467;&#26524;&#38598;&#22788;&#29702;&#20197;&#21450;&#36816;&#34892;&#23454;&#38469;&#26597;&#35810;&#30340;&#26041;&#27861;&#12290;				&#20320;&#24635;&#26159;&#21487;&#20197;&#36890;&#36807;&#24403;&#21069;<tt class="literal">Session</tt>&#33719;&#21462;&#19968;&#20010;<tt class="literal">Query</tt>&#23545;&#35937;&#65306;            </p><pre class="programlisting">List cats = session.createQuery(    "from Cat as cat where cat.birthdate &lt; ?")    .setDate(0, date)    .list();List mothers = session.createQuery(    "select mother from Cat as cat join cat.mother as mother where cat.name = ?")    .setString(0, name)    .list();List kittens = session.createQuery(    "from Cat as cat where cat.mother = ?")    .setEntity(0, pk)    .list();Cat mother = (Cat) session.createQuery(    "select cat.mother from Cat as cat where cat = ?")    .setEntity(0, izi)    .uniqueResult();</pre><p>            	&#19968;&#20010;&#26597;&#35810;&#36890;&#24120;&#22312;&#35843;&#29992;<tt class="literal">list()</tt>&#26102;&#34987;&#25191;&#34892;&#65292;&#25191;&#34892;&#32467;&#26524;&#20250;&#23436;&#20840;&#35013;&#36733;&#36827;&#20869;&#23384;&#20013;&#30340;&#19968;&#20010;&#38598;&#21512;(collection)&#12290;            	&#26597;&#35810;&#36820;&#22238;&#30340;&#23545;&#35937;&#22788;&#20110;&#25345;&#20037;(persistent)&#29366;&#24577;&#12290;&#22914;&#26524;&#20320;&#30693;&#36947;&#30340;&#26597;&#35810;&#21482;&#20250;&#36820;&#22238;&#19968;&#20010;&#23545;&#35937;&#65292;&#21487;&#20351;&#29992;<tt class="literal">list()</tt>&#30340;&#24555;&#25463;&#26041;&#24335;<tt class="literal">uniqueResult()</tt>&#12290;            </p><div class="sect3" lang="zh-cn"><div class="titlepage"><div><div><h4 class="title"><a name="objectstate-querying-executing-iterate"></a>11.4.1.1.&nbsp;&#36845;&#20195;&#24335;&#33719;&#21462;&#32467;&#26524;(Iterating results)</h4></div></div><div></div></div><p>					&#26576;&#20123;&#24773;&#20917;&#19979;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;<tt class="literal">iterate()</tt>&#26041;&#27861;&#24471;&#21040;&#26356;&#22909;&#30340;&#24615;&#33021;&#12290;					&#36825;&#36890;&#24120;&#26159;&#20320;&#39044;&#26399;&#36820;&#22238;&#30340;&#32467;&#26524;&#22312;session&#65292;&#25110;&#20108;&#32423;&#32531;&#23384;(second-level cache)&#20013;&#24050;&#32463;&#23384;&#22312;&#26102;&#30340;&#24773;&#20917;&#12290;					&#22914;&#33509;&#19981;&#28982;&#65292;<tt class="literal">iterate()</tt>&#20250;&#27604;<tt class="literal">list()</tt>&#24930;&#65292;&#32780;&#19988;&#21487;&#33021;&#31616;&#21333;&#26597;&#35810;&#20063;&#38656;&#35201;&#36827;&#34892;&#22810;&#27425;&#25968;&#25454;&#24211;&#35775;&#38382;&#65306;					<tt class="literal">iterate()</tt>&#20250;&#39318;&#20808;&#20351;&#29992;<span class="emphasis"><em>1</em></span>&#26465;&#35821;&#21477;&#24471;&#21040;&#25152;&#26377;&#23545;&#35937;&#30340;&#25345;&#20037;&#21270;&#26631;&#35782;(identifiers)&#65292;&#20877;&#26681;&#25454;&#25345;&#20037;&#21270;&#26631;&#35782;&#25191;&#34892;<span class="emphasis"><em>n</em></span>&#26465;&#38468;&#21152;&#30340;select&#35821;&#21477;&#23454;&#20363;&#21270;&#23454;&#38469;&#30340;&#23545;&#35937;&#12290;                </p><pre class="programlisting">// fetch idsIterator iter = sess.createQuery("from eg.Qux q order by q.likeliness").iterate();while ( iter.hasNext() ) {    Qux qux = (Qux) iter.next();  // fetch the object    // something we couldnt express in the query    if ( qux.calculateComplicatedAlgorithm() ) {        // delete the current instance        iter.remove();        // dont need to process the rest        break;    }}</pre></div><div class="sect3" lang="zh-cn"><div class="titlepage"><div><div><h4 class="title"><a name="objectstate-querying-executing-tuples"></a>11.4.1.2.&nbsp;&#36820;&#22238;&#20803;&#32452;(tuples)&#30340;&#26597;&#35810;</h4></div></div><div></div></div><p>                &#65288;&#35793;&#27880;&#65306;&#20803;&#32452;(tuples)&#25351;&#19968;&#26465;&#32467;&#26524;&#34892;&#21253;&#21547;&#22810;&#20010;&#23545;&#35937;&#65289;                    Hibernate&#26597;&#35810;&#26377;&#26102;&#36820;&#22238;&#20803;&#32452;(tuples)&#65292;&#27599;&#20010;&#20803;&#32452;(tuples)&#20197;&#25968;&#32452;&#30340;&#24418;&#24335;&#36820;&#22238;:                </p><pre class="programlisting">Iterator kittensAndMothers = sess.createQuery(            "select kitten, mother from Cat kitten join kitten.mother mother")            .list()            .iterator();while ( kittensAndMothers.hasNext() ) {    Object[] tuple = (Object[]) kittensAndMothers.next();    Cat kitten  = tuple[0];    Cat mother  = tuple[1];    ....}</pre></div><div class="sect3" lang="zh-cn"><div class="titlepage"><div><div><h4 class="title"><a name="objectstate-querying-executing-scalar"></a>11.4.1.3.&nbsp;&#26631;&#37327;(Scalar)&#32467;&#26524;</h4></div></div><div></div></div><p>					&#26597;&#35810;&#21487;&#22312;<tt class="literal">select</tt>&#20174;&#21477;&#20013;&#25351;&#23450;&#31867;&#30340;&#23646;&#24615;&#65292;&#29978;&#33267;&#21487;&#20197;&#35843;&#29992;SQL&#32479;&#35745;(aggregate)&#20989;&#25968;&#12290;					&#23646;&#24615;&#25110;&#32479;&#35745;&#32467;&#26524;&#34987;&#35748;&#23450;&#20026;"&#26631;&#37327;(Scalar)"&#30340;&#32467;&#26524;&#65288;&#32780;&#19981;&#26159;&#25345;&#20037;(persistent state)&#30340;&#23454;&#20307;&#65289;&#12290;                </p><pre class="programlisting">Iterator results = sess.createQuery(        "select cat.color, min(cat.birthdate), count(cat) from Cat cat " +        "group by cat.color")        .list()        .iterator();while ( results.hasNext() ) {    Object[] row = results.next();    Color type = (Color) row[0];    Date oldest = (Date) row[1];    Integer count = (Integer) row[2];    .....}</pre></div><div class="sect3" lang="zh-cn"><div class="titlepage"><div><div><h4 class="title"><a name="objectstate-querying-executing-parameters"></a>11.4.1.4.&nbsp;&#32465;&#23450;&#21442;&#25968;</h4></div></div><div></div></div><p>                    &#25509;&#21475;<tt class="literal">Query</tt>&#25552;&#20379;&#20102;&#23545;&#21629;&#21517;&#21442;&#25968;(named parameters)&#12289;JDBC&#39118;&#26684;&#30340;<tt class="literal">&#38382;&#21495;(?)</tt>&#21442;&#25968;&#36827;&#34892;&#32465;&#23450;&#30340;&#26041;&#27861;&#12290;					<span class="emphasis"><em>&#19981;&#21516;&#20110;JDBC&#65292;Hibernate&#23545;&#21442;&#25968;&#20174;0&#24320;&#22987;&#35745;&#25968;&#12290;</em></span>                    &#21629;&#21517;&#21442;&#25968;(named parameters)&#22312;&#26597;&#35810;&#23383;&#31526;&#20018;&#20013;&#26159;&#24418;&#22914;<tt class="literal">:name</tt>&#30340;&#26631;&#35782;&#31526;&#12290;                    &#21629;&#21517;&#21442;&#25968;(named parameters)&#30340;&#20248;&#28857;&#26159;:                </p><div class="itemizedlist"><ul type="disc" compact><li><p>                            &#21629;&#21517;&#21442;&#25968;(named parameters)&#19982;&#20854;&#22312;&#26597;&#35810;&#20018;&#20013;&#20986;&#29616;&#30340;&#39034;&#24207;&#26080;&#20851;                        </p></li><li><p>                                &#23427;&#20204;&#21487;&#22312;&#21516;&#19968;&#26597;&#35810;&#20018;&#20013;&#22810;&#27425;&#20986;&#29616;                        </p></li><li><p>                                &#23427;&#20204;&#26412;&#36523;&#26159;&#33258;&#25105;&#35828;&#26126;&#30340;                        </p></li></ul></div><pre class="programlisting">//named parameter (preferred)

⌨️ 快捷键说明

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