[hibernate-commits] Hibernate SVN: r10955 - in
branches/Branch_3_2/Hibernate3/doc/reference/ja: . modules
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Fri Dec 8 03:02:12 EST 2006
Author: christian.bauer at jboss.com
Date: 2006-12-08 03:01:55 -0500 (Fri, 08 Dec 2006)
New Revision: 10955
Modified:
branches/Branch_3_2/Hibernate3/doc/reference/ja/master.xml
branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/architecture.xml
branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/basic_mapping.xml
branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/configuration.xml
branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/performance.xml
branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/persistent_classes.xml
branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/query_sql.xml
branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/session_api.xml
branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/tutorial.xml
branches/Branch_3_2/Hibernate3/doc/reference/ja/readme_ja.txt
Log:
Synchronized JA translation between 3.2 branch and trunk
Modified: branches/Branch_3_2/Hibernate3/doc/reference/ja/master.xml
===================================================================
--- branches/Branch_3_2/Hibernate3/doc/reference/ja/master.xml 2006-12-07 22:28:06 UTC (rev 10954)
+++ branches/Branch_3_2/Hibernate3/doc/reference/ja/master.xml 2006-12-08 08:01:55 UTC (rev 10955)
@@ -33,7 +33,7 @@
<bookinfo>
<title>HIBERNATE - Relational Persistence for Idiomatic Java</title>
<subtitle>Hibernate Reference Documentation</subtitle>
- <releaseinfo>3.1.2</releaseinfo>
+ <releaseinfo>3.2 cr3</releaseinfo>
</bookinfo>
<toc/>
@@ -42,19 +42,6 @@
<title>O«</title>
<para>
- WARNING! This is a translated version of the English Hibernate reference
- documentation. The translated version might not be up to date! However, the
- differences should only be very minor. Consult the English reference
- documentation if you are missing information or encounter a translation
- error. If you like to contribute to a particular translation, contact us
- on the Hibernate developer mailing list.
- </para>
-
- <para>
- Translator(s): Chikara Honma, Yusuke Hiroto;
- </para>
-
- <para>
¡úÌéÆÂ«É¨¢ÄAIuWFNgwü\tgEFAÆ[Vif[^x[XÉÖíéìÆÍ
ÏGÅcåÈÔðKvƵܷB
HibernateÍJava«ÌIuWFNg/[Vi}bsOc[Å·B
@@ -65,7 +52,7 @@
<para>
HibernateÍJavaNX©çf[^x[Xe[uÖi»µÄJavaf[^^©çSQLf[^^Öj
- Ì}bsOð·é¾¯ÅÍÈAf[^ÌNGƳÌdgÝðàñµÜ·B
+ Ì}bsOð·é¾¯ÅÍÈAf[^ÌNGƳÌdgÝàñµÜ·B
±Ì¨©°ÅSQLÆJDBCðgÁ½èìÆÅÌf[^Éïâ³êÄ¢½JÔðåÉí¸Å«Ü·B
</para>
@@ -89,8 +76,6 @@
<para>
<xref linkend="tutorial"/> ðÇñž³¢B
iKIÉðàµÄ¢«Ü·B
- <xref linkend="tutorial"/> ðÇñž³¢B
- iKIÉðàµÄ¢«Ü·B
`
[gAÌ\[XR[hÍfBXgr
[VÌ
<literal>doc/reference/tutorial</literal> fBNgÉÜÜêĢܷB
</para>
@@ -127,11 +112,11 @@
FAQÍHibernateEFuTCgÉ èÜ·B
</para>
</listitem>
- <listitem>
+ <listitem>
<para>
T[hp[eBÌfAáA`
[gAÍHibernateEFuTCgÉNª èÜ·B
</para>
- </listitem>
+ </listitem>
<listitem>
<para>
HibernateEFuTCgÌR~
jeBGAÍAfUCp^[â³Ü´ÜÈ\
[V
@@ -142,9 +127,9 @@
<para>
¿âª êÎHibernateEFuTCgÌ[UtH[ðpµÄ¾³¢B
- ܽoO|[gÆtB[`NGXg̽ßJIRAâèÇÕVXeðpӵĢܷB
+ ܽoO|[gÆtB[`NGXg̽ßJIRAÛèÇÕVXeðpӵĢܷB
HibernateÌJÉ»¡ª êÎAJÒ[OXgÉQÁµÄ¾³¢B
- ±ÌhL
gð ȽB̾êÖ|óµ½¢êÍA
+ ±ÌhL
gð ȽÌ̾tÉ|óµ½¢êÍA
JÒ[OXgŽ¿ÉR^NgðæÁľ³¢B
</para>
@@ -154,7 +139,7 @@
HibernateÍProfessional Open SourcevWFNgA
»µÄJBoss Enterprise Middleware SystemiJEMSjv_NgXC[gÌNeBJR|[lgÅ·B
</para>
-
+
<sect1 id="preface-s1" revision="-1">
<title>ú{êóÉ¢Ä</title>
@@ -179,7 +164,7 @@
<title>ú{êÅ|óÒÉ¢Ä</title>
<para id="preface-s1-1-p4" revision="-1">
- ú{êÅo[W3.1.2Ì|óÍ®ïÐGNT
+ ú{êÅo[W3.2 cr3Ì|óÍ®ïÐGNT
i<ulink url="http://www.exa-corp.co.jp">z[y[Wͱ¿ç</ulink>j
ÌȺÌo[Ås¢Üµ½B
{ÔÍi6,18,19,21,22,23ÍSjA
Modified: branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/architecture.xml
===================================================================
--- branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/architecture.xml 2006-12-07 22:28:06 UTC (rev 10954)
+++ branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/architecture.xml 2006-12-08 08:01:55 UTC (rev 10955)
@@ -79,7 +79,7 @@
<listitem>
<para>
AvP[VÆi±XgAÆÌÎbð\·A
- VOEXbhÅZ½ÌIuWFNgB
+ VOXbhÅZ½ÌIuWFNgB
JDBCRlNVðbvµÜ·B
<literal>Transaction</literal> Ìt@NgÅ·B
i±IuWFNgÌK{ÌiêjLbV
ð۵ܷB
@@ -118,7 +118,7 @@
<listitem>
<para>
(IvV)´q«ðÂìÆPÊ(Unit of Work)ðwè·é½ßÉAAvP[Vªgp·éA
- VOEXbhÅZ½ÈIuWFNgB
+ VOXbhÅZ½ÈIuWFNgB
ºÉÊu·éJDBCAJTAACORBAgUNV©çAvP[VðÛ»µÜ·B
<literal>Session</literal> ÍAÉÍ
¢Â©Ì <literal>Transaction</literal> ðܽªé©àµêܹñB
@@ -277,18 +277,19 @@
</para>
</sect1>
- <sect1 id="architecture-current-session" revision="1">
+ <sect1 id="architecture-current-session" revision="2">
<title>ReLXgãÌZbV</title>
<para>
Hibernate ðgÁ½AvP[VÍAÙÆñÇAÈñç©Ì`Å"ReLXgãÌ"ZbVªKvÉÈèÜ·B
uReLXgãÌZbVvÍAÁèÌReLXgÌXR[vÌÈ©ÅLøÈZbV̱ÆÅ·B
- µ©µAÓ¤AAvP[V²ÆÉReLXgð\¬·éàÌÌè`ÍÙÈèÜ·B
+ µ©µAÊíAvP[V²ÆÉReLXgð\¬·éàÌÌè`ÍÙÈèÜ·B
µ©àAÙÈé¡ÌReLXgÍA»_ÉεÄÙÈéXR[vðè`µÜ·B
o[W3.0æèOÌ Hibernate ÅÍA©ìÌ <literal>ThreadLocal</literal> x[XÌuReLXgãÌZbVvð
p·é©A <literal>HibernateUtil</literal> Ìæ¤Èwp[NXðp·é©A
proxy/interception x[XÌuReLXgãÌZbVvðñ·é
- iSpring â Pico Ìæ¤ÈjT[hp[eBÌt[[Nðp·é©ÌÇê©Åµ½B
+ iSpring â Pico Ìæ¤ÈjT[hp[eBÌt[[Nðp·é©Ì¢¸ê©Åµ½B
</para>
+
<para>
o[W 3.0.1 ©çAHibernate ÉÍ <literal>SessionFactory.getCurrentSession()</literal> ª
Áíèܵ½B ±êÍA <literal>JTA</literal> gUNVÌgpðOñɵĢܷB
@@ -301,7 +302,7 @@
±Ìl¦ÉîÃÆA <literal>JTA</literal> x[XÌuReLXgãÌZbVvð
g¤µ©È¢Åµå¤B
</para>
-
+
<para>
µ©µAo[W 3.1 ©çÍA <literal>SessionFactory.getCurrentSession()</literal> Ìã̪A
vKuÉÈèܵ½B
@@ -309,6 +310,7 @@
Vµ¢g£C^tF[X ( <literal>org.hibernate.context.CurrentSessionContext</literal> ) Æ
Vµ¢\¬p[^ ( <literal>hibernate.current_session_context_class</literal> ) ªÇÁ³êܵ½B
</para>
+
<para>
<literal>org.hibernate.context.CurrentSessionContext</literal> C^tF[XÌKñÉ¢ÄÌ
Ú×ÈàeÍ Javadoc ðQƵľ³¢B
@@ -322,41 +324,52 @@
<para>
<literal>org.hibernate.context.JTASessionContext</literal> -
<literal>JTA</literal> gUNVÉæÁÄA»ÝÌZbVªÇÕ³êA
- XR[vðßçêÜ·B±ÌÍAâ JTA¾¯ÌAv[`ÆÜÁ½¯¶Å·B
- Ú×ÍAJavadoc ðQƵľ³¢B
+ XR[vðßçêÜ·B±ÌÍAâJTA¾¯ÌAv[`ÆÜÁ½¯¶Å·B
+ Ú×ÍJavadocðQƵľ³¢B
</para>
</listitem>
<listitem>
<para>
<literal>org.hibernate.context.ThreadLocalSessionContext</literal> -
XbhÌÀsÉæÁÄA»ÝÌZbVªÇÕ³êÜ·B
- Ú×ÍAJavadoc ðQƵľ³¢B
+ Ú×ÍJavadocðQƵľ³¢B
</para>
</listitem>
+ <listitem>
+ <para>
+ <literal>org.hibernate.context.ManagedSessionContext</literal> -
+ XbhÌÀsÉæÁÄA»ÝÌZbVªÇÕ³êÜ·B
+ µ©µA±ÌNXÌstatic\bhÅ <literal>Session</literal> CX^Xð
+ oCh/AoCh·éÓCÍ È½É èÜ·B
+ ±ê굀 <literal>Session</literal> ðI[vAtbV
AN[YµÜ¹ñB
+ </para>
+ </listitem>
</itemizedlist>
<para>
- ±Ì2ÂÌÀÍA"1ZbV - 1f[^x[XgUNV" vO~OfðñµÜ·B
- ܽA <emphasis>NGXg²ÆÌZbV</emphasis> ƵÄmçêĨèAgíêĢܷB
+ nßÌ2ÂÌÀÍA"1ZbV - 1f[^x[XgUNV" vO~OfðñµÜ·B
+ ±êÍ <emphasis>NGXg²ÆÌZbVisession-per-requestj</emphasis> ƵÄàmçêĨèAgíêĢܷB
Hibernate ZbVÌJnÆI¹ÍAf[^x[XgUNVÌúÔÅÜèÜ·B
- àµAvOÉæégUNV«EÝèiáFÈ J2SE â JTA/UserTransaction/BMT ðgp·éêj
- ðg¢½¢ÈçAºÊÉ égUNVVXeðBÁ·é½ßÉA
- Hibernate Ì <literal>Transaction</literal> ðgÁ½ûªÇ¢Å·B
- àµACMT ðT|[g·é EJB Rei[Ů쳹éÂàèÈçÎAgUNV«EÍA
- é¾IÉè`Å«AgUNVâZbVÌ«EÝèÉÖ·éÇÌæ¤ÈìàKvÆÈèܹñB
- æèÚ×ÈîñâR[hÌáÍA <xref linkend="transactions"/> ðQƵľ³¢B
+ JTAðgíÈ¢ÊÌJSEÅAvOãÌgUNV«EÝèðs¤ÈçA
+ R[h©çîbÌgUNVVXeðBÁ·é½ßÉA
+ Hibernate <literal>Transaction</literal> APIðg¤Ææ¢Åµå¤B
+ JTAðg¤ÈçAgUNVÌ«EÝèÉÍAJTAC^[tFCXðgÁľ³¢B
+ CMTðT|[g·éEJBReiÅÀs·éÂàèÈçAgUNV«EÍé¾IÉè`Å«é½ßA
+ R[hãÅgUNVâZbVÌ«EðÝè·éKvÍ èܹñB
+ ³çÉÚ×ÈîñâR[hÌáÍA <xref linkend="transactions"/> ðQƵľ³¢B
</para>
<para>
- <literal>hibernate.current_session_context_class</literal> \¬p[^ÍA
+ <literal>hibernate.current_session_context_class</literal> Ýèp[^ÍA
<literal>org.hibernate.context.CurrentSessionContext</literal> ÌÇÌÀðg¤©ðwèµÜ·B
- ºÊÝ·«Ì½ßA±Ì\¬p[^ªÝè³ê¸É
- <literal>org.hibernate.transaction.TransactionManagerLookup</literal> ªÝè³êÄ¢½êÍA
- <literal>org.hibernate.context.JTASessionContext</literal> ðg¢Ü·B
- ÊíA±Ìp[^ÌlÉÍA2ÂÌ·®Ég¦éÀ̤¿Agp·éûÌÀNX̼OðwèµÜ·ªA
- "jta" Æ "thread" Æ¢¤»ê¼êÌȪ¼àpÓ³êĢܷB
+ ºÊÝ·«Ì½ßA±Ìp[^ªÝè³ê¸
+ <literal>org.hibernate.transaction.TransactionManagerLookup</literal> ªÝè³êÄ¢½êA
+ HibernateÍ <literal>org.hibernate.context.JTASessionContext</literal> ðg¤±ÆÉӵľ³¢B
+ Êí±Ìp[^ÌlÉÍA3ÂÌÀÌ©çgp·éÀNX̼Oð¼ÚwèµÜ·B
+ µ©µA"jta", "thread", "managed"Æ¢¤»ê¼êÌȪ¼àpÓ³êĢܷB
</para>
</sect1>
</chapter>
+
Modified: branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/basic_mapping.xml
===================================================================
--- branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/basic_mapping.xml 2006-12-07 22:28:06 UTC (rev 10954)
+++ branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/basic_mapping.xml 2006-12-08 08:01:55 UTC (rev 10955)
@@ -97,7 +97,7 @@
- <sect2 id="mapping-declaration-doctype" revision="2">
+ <sect2 id="mapping-declaration-doctype" revision="3">
<title>Doctype</title>
<para>
@@ -108,6 +108,68 @@
C^[lbgÉ éDTDt@CðT»¤Æµ½ÈçA
NXpXÌàeð©ÄADTDé¾ðmFµÄ¾³¢B
</para>
+
+
+
+ <sect3 id="mapping-declaration-entity-resolution">
+ <title>
+ GeBeBE]o
+ </title>
+ <para>
+ Oqµ½æ¤ÉAHibernateÍܸNXpXàÅDTDððµæ¤ÆµÜ·B
+ <literal>org.xml.sax.EntityResolver</literal> ÌJX^Àð
+ XMLt@CðÇÝÞ½ßÌSAXReaderÉo^·é±ÆÉæÁÄADTDððµÜ·B
+ ±ÌJX^Ì <literal>EntityResolver</literal> Í2ÂÌÙÈéVXeID¼OóÔðF¯µÜ·B
+
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>Hibernate¼OóÔ</literal> ÍA]oª
+ <literal>http://hibernate.sourceforge.net/</literal> ÅnÜéVXeIDÉBµ½Æ«ÉA
+ F¯³êÜ·B
+ »µÄ]oÍAHibernateÌNXð[hµ½NX[_ðp¢ÄA
+ ±êçÌGeBeBððµæ¤ÆµÜ·B
+
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>[U¼OóÔ</literal> ÍA]oª
+ URLvgRÌ <literal>classpath://</literal> ðgÁ½VXeIDÉBµ½Æ«ÉA
+ F¯³êÜ·B»µÄ]oÍA(1)JgXbhÌReLXgNX[_[A
+ ܽÍ(2)HibernateÌNXð[hµ½NX[_ðgÁÄA
+ ±êçÌGeBeBððµæ¤ÆµÜ·B
+
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>
+ ºLÍA[U¼OóÔðgÁ½áÅ·F
+
+ </para>
+ <programlisting><![CDATA[<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+ "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+ "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" [
+ <!ENTITY types SYSTEM "classpath://your/domain/types.xml">
+]>
+
+<hibernate-mapping package="your.domain">
+ <class name="MyEntity">
+ <id name="id" type="my-custom-id-type">
+ ...
+ </id>
+ <class>
+ &types;
+</hibernate-mapping>]]></programlisting>
+ <para>
+ ±±Å <literal>types.xml</literal> Í <literal>your.domain</literal> pbP[WàÌ\[XÅ èA
+ JX^ <xref linkend="mapping-types-custom">typedef</xref> ðÜÞÜ·B
+ </para>
+ </sect3>
+
+
</sect2>
<sect2 id="mapping-declaration-mapping" revision="3">
Modified: branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/configuration.xml
===================================================================
--- branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/configuration.xml 2006-12-07 22:28:06 UTC (rev 10954)
+++ branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/configuration.xml 2006-12-08 08:01:55 UTC (rev 10955)
@@ -689,9 +689,17 @@
JDBCgUNVÌêA <literal>after_transaction</literal> ÅN[YµÜ·B
<para>
<emphasis role="strong">áF</emphasis>
- <literal>on_close</literal> (default) | <literal>after_transaction</literal> |
- <literal>after_statement</literal> | <literal>auto</literal>
+ <literal>auto</literal> (default) | <literal>on_close</literal> |
+ <literal>after_transaction</literal> | <literal>after_statement</literal>
</para>
+ <para>
+ ӵľ³¢B±ÌÝèÍ <literal>SessionFactory.openSession</literal> ©ç
+ æ¾µ½ <literal>Session</literal> ¾¯ÉøÊª èÜ·B
+ <literal>SessionFactory.getCurrentSession</literal> ðÊ¶Äæ¾µ½
+ <literal>Session</literal> ÅÍA<literal>CurrentSessionContext</literal>
+ ÌÀÉæÁÄARlNVÌ[X[hðÝèµÜ·B
+ <xref linkend="architecture-current-session"/> ðQƵľ³¢B
+ </para>
</entry>
</row>
<row>
@@ -906,7 +914,7 @@
</tgroup>
</table>
- <table frame="topbot" id="configuration-misc-properties" revision="9">
+ <table frame="topbot" id="configuration-misc-properties" revision="10">
<title>»Ì¼ÌvpeB</title>
<tgroup cols="2">
<colspec colname="c1" colwidth="1*"/>
@@ -929,7 +937,7 @@
<para>
<emphasis role="strong">áF</emphasis>
<literal>jta</literal> | <literal>thread</literal> |
- <literal>custom.Class</literal>
+ <literal>managed</literal> | <literal>custom.Class</literal>
</para>
</entry>
</row>
Modified: branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/performance.xml
===================================================================
--- branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/performance.xml 2006-12-07 22:28:06 UTC (rev 10954)
+++ branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/performance.xml 2006-12-08 08:01:55 UTC (rev 10955)
@@ -634,11 +634,13 @@
l¶µÜ¹ñiLbV
f[^ðèúIÉúÀØêÉ·éÝèÍoÜ·jB
</para>
- <para>
- ftHgÅÍAHibernateÍJVMxÌLbV
ÉEHCacheðg¢Ü·BiJCST|[gͻݧ³êĨç¸A
- HibernateÌ«Ìo[WÅÍí³êéŵå¤jB <literal>hibernate.cache.provider_class</literal>
- vpeBÉA <literal>org.hibernate.cache.CacheProvider</literal> ðÀµ½NX̼Oðwè·é±ÆÅA
- ÊÌÀðIð·é±ÆàoÜ·B
+ <para revision="1">
+ Hibernateªgp·éLbV
ÀÍA<literal>hibernate.cache.provider_class</literal> vpeBÉ
+ <literal>org.hibernate.cache.CacheProvider</literal> ðÀµ½NX¼ðwè·é±ÆÅÏXūܷB
+ HibernateͽÌI[v\[XÌLbV
voC_ðrgCÀÅÁĢܷiãÉXgª èÜ·jB
+ Á¦ÄAOÉྵ½æ¤ÉA Ƚ©gªÆ©ÌÀðµÄA»êðgÝÞ±ÆàoÜ·B
+ o[W3.2æèOÅÍEhCacheªftHgÌLbV
voC_Š鱯Éӵľ³¢B
+ o[W3.2ÅͱêÍÄÍÜèܹñB
</para>
<table frame="topbot" id="cacheproviders" revision="1">
Modified: branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/persistent_classes.xml
===================================================================
--- branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/persistent_classes.xml 2006-12-07 22:28:06 UTC (rev 10954)
+++ branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/persistent_classes.xml 2006-12-08 08:01:55 UTC (rev 10955)
@@ -461,7 +461,7 @@
</sect1>
- <sect1 id="persistent-classes-tuplizers" revision="0">
+ <sect1 id="persistent-classes-tuplizers" revision="1">
<title>Tuplizer</title>
<para>
@@ -511,7 +511,7 @@
public class CustomMapTuplizerImpl
- extends org.hibernate.tuple.DynamicMapEntityTuplizer {
+ extends org.hibernate.tuple.entity.DynamicMapEntityTuplizer {
// override the buildInstantiator() method to plug in our custom map...
protected final Instantiator buildInstantiator(
org.hibernate.mapping.PersistentClass mappingInfo) {
@@ -531,7 +531,7 @@
</sect1>
<para>
- <!-- TODO: vpeBÆvLVpbP[WÌ[Ug£t[[Nð¶»·é±Æ -->
+ TODO: vpeBÆvLVpbP[WÌ[Ug£t[[Nð¶»·é±Æ
</para>
</chapter>
Modified: branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/query_sql.xml
===================================================================
--- branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/query_sql.xml 2006-12-07 22:28:06 UTC (rev 10954)
+++ branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/query_sql.xml 2006-12-08 08:01:55 UTC (rev 10955)
@@ -1,548 +1,724 @@
-<?xml version="1.0" encoding="Shift_JIS"?>
-<chapter id="querysql" revision="2">
- <title>lCeBuSQL</title>
-
- <para>f[^x[XÌlCeBuSQLû¾ðgÁÄNGð\»·é±ÆàūܷB
- NGqgâOracleÌ <literal>CONNECT</literal> L[[hÌæ¤ÉA
- f[^x[XÆ©Ì@\ðpµ½¢Æ«Ég¦Ü·B
- SQL/JDBCð¼ÚgpµÄ¢éAvP[V©çHibernateÖÌÚsàeÕɵĢܷB</para>
-
- <para>Hibernate3ÅÍA¶¬AXVAíAÇÝÝÌæ¤È·×ÄÌ
- SQLiXgAhvV[WðÜÞjðè«Å«Ü·B</para>
-
- <sect1 id="querysql-creating" revision="3">
- <title> <literal>SQLQuery</literal> Ìgp</title>
-
- <para>lCeBuÈSQLNGÌÀsÍ <literal>SQLQuery</literal>
- C^[tFCXðʵħäµÜ·B
- <literal>SQLQuery</literal> C^[tFCXÍ
- <literal>Session.createSQLQuery()</literal> ðÄÑoµÄ澵ܷB
- ñíÉÈPÈêAÌæ¤È`ðg¦Ü·B</para>
-
- <programlisting><![CDATA[List cats = sess.createSQLQuery("select * from cats")
- .addEntity(Cat.class)
- .list();]]></programlisting>
-
- <para>±ÌNGÅwè³êÄ¢éàÌðºLɦµÜ·B</para>
-
- <itemizedlist>
- <listitem>
- <para>SQLNG¶ñ</para>
- </listitem>
-
- <listitem>
- <para>NGªÔ·GeBeB</para>
- </listitem>
- </itemizedlist>
-
- <para>±±ÅÍA
- UgZbgÌñ¼ÍA}bsOt@CÅwè³ê½ñ¼Æ¯¶¾Æ¼è³êÜ·B
- ±êͯ¶ñ¼ð¡Ìe[uð·éSQLNGÅÍâèÆÈèÜ·B
- Ì`ÍAñ¼ªd¡µÄàãÝÉÈèܹñB</para>
-
- <programlisting><![CDATA[List cats = sess.createSQLQuery("select {cat.*} from cats cat")
- .addEntity("cat", Cat.class)
- .list();]]></programlisting>
-
- <para>±ÌNGÅwè³êÄ¢éàÌðºLɦµÜ·B</para>
-
- <itemizedlist>
- <listitem>
- <para>SQLNG¶ñ
- iHibernateªñÌʼð}ü·é½ßÌv[Xz_ðÜÞj</para>
- </listitem>
-
- <listitem>
- <para>NGªÔ·GeBeBÆSQLe[uÌʼ</para>
- </listitem>
- </itemizedlist>
-
- <para><literal>addEntity()</literal> \bhÉæèA
- SQLÌe[uʼÆÔ³êéGeBeBNXðÖAt¯A
- NGÌUgZbgÌ\¢ðèµÜ·B</para>
-
- <para><literal>addJoin()</literal> \bhðg¢A
- ¼ÌGeBeBÆÌÖAÆRNVð[hµÜ·B</para>
-
- <programlisting><![CDATA[List cats = sess.createSQLQuery(
- "select {cat.*}, {kitten.*} from cats cat, cats kitten where kitten.mother = cat.id"
- )
- .addEntity("cat", Cat.class)
- .addJoin("kitten", "cat.kittens")
- .list();]]></programlisting>
-
- <para>lCeBuSQLNGÍAPÈXJlâXJlÆ
- GeBeBÌgÝí¹ðÔµÄàæ¢Å·B</para>
-
- <programlisting><![CDATA[Double max = (Double) sess.createSQLQuery("select max(cat.weight) as maxWeight from cats cat")
- .addScalar("maxWeight", Hibernate.DOUBLE);
- .uniqueResult();]]></programlisting>
-
- <para>ãíèÉAhbmt@CÉUgZbgÌ}bsOîñðLqµA
- NGÅgp·é±ÆªÅ«Ü·B</para>
-
- <programlisting><![CDATA[List cats = sess.createSQLQuery(
- "select {cat.*}, {kitten.*} from cats cat, cats kitten where kitten.mother = cat.id"
- )
- .setResultSetMapping("catAndKitten")
- .list();]]></programlisting>
- </sect1>
-
- <sect1 id="querysql-aliasreferences">
- <title>ʼÆvpeBÌQÆ</title>
- <para>ãLÌ <literal>{cat.*}</literal> Æ¢¤\LÍAu·×ÄÌvpeBvð\·Èª`Å·B
- ãíèÉA¾¦IÉJðñµÄàæ¢Å·ªA
- ±ÌêÍAHibernateÉevpeBÉηéSQLñÌʼð}ü³¹é׫ŵå¤B
- ñÌʼ̽ßÌv[Xz_ÍAe[uÌÊ¼ÉæÁÄCü³ê½vpeB¼Å·B
- ºLÌáÅÍAÊÌe[ui<literal>cat_log</literal>j©ç
- }bsO^f[^Åè`³ê½ <literal>Cat</literal> ð³µÜ·B
- àµDÞÈçAwhereßÌų¦AvpeBÌʼðg¦é±ÆÉCð¯ľ³¢B</para>
-
- <para>¼Ot«NGÉ뵀 <literal>{}</literal> \¶ÍK{ÅÍ <emphasis>È¢</emphasis> Å·B
- <xref linkend="querysql-namedqueries"/> ðQƵľ³¢B</para>
-
- <programlisting><![CDATA[String sql = "select cat.originalId as {cat.id}, " +
- "cat.mateid as {cat.mate}, cat.sex as {cat.sex}, " +
- "cat.weight*10 as {cat.weight}, cat.name as {cat.name} " +
- "from cat_log cat where {cat.mate} = :catId"
-
-List loggedCats = sess.createSQLQuery(sql)
- .addEntity("cat", Cat.class)
- .setLong("catId", catId)
- .list();]]></programlisting>
-
- <para><emphasis>ÓF</emphasis> ൾ¦IÉevpeBðñ·éÈçA
- NX <emphasis>ÆTuNX</emphasis> Ì·×ÄÌvpeBðÜßȯêÎÈèܹñI</para>
-
-
- <para>ʼÉ}üÅ«éàÌðº\ɦµÜ·B
- ÓFº\ÌʼÍêáÅ·B
- »ê¼êÌʼÍêÓÅ èAgp·éÛÉͨ»çÙÈé¼Oð¿Ü·B</para>
-
- <table frame="topbot" id="aliasinjection-summary">
- <title>ʼÉ}ü·é¼O</title>
-
- <tgroup cols="4">
- <colspec colwidth="1*" />
-
- <colspec colwidth="1*" />
-
- <colspec colwidth="2.5*" />
-
- <thead>
- <row>
- <entry>à¾</entry>
- <entry>\¶</entry>
- <entry>á</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>PÈvpeB</entry>
- <entry><literal>{[aliasname].[propertyname]}</literal></entry>
- <entry><literal>A_NAME as {item.name}</literal></entry>
- </row>
- <row>
- <entry>¡vpeB</entry>
- <entry><literal>{[aliasname].[componentname].[propertyname]}</literal></entry>
- <entry><literal>CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}</literal></entry>
- </row>
- <row>
- <entry>GeBeBÌNXð¯Ê·él</entry>
- <entry><literal>{[aliasname].class}</literal></entry>
- <entry><literal>DISC as {item.class}</literal></entry>
- </row>
- <row>
- <entry>GeBeBÌSvpeB</entry>
- <entry><literal>{[aliasname].*}</literal></entry>
- <entry><literal>{item.*}</literal></entry>
- </row>
- <row>
- <entry>RNVÌL[</entry>
- <entry><literal>{[aliasname].key}</literal></entry>
- <entry><literal>ORGID as {coll.key}</literal></entry>
- </row>
- <row>
- <entry>RNVÌID</entry>
- <entry><literal>{[aliasname].id}</literal></entry>
- <entry><literal>EMPID as {coll.id}</literal></entry>
- </row>
- <row>
- <entry>RNVÌvf</entry>
- <entry><literal>{[aliasname].element}</literal></entry>
- <entry><literal>XID as {coll.element}</literal></entry>
- <entry></entry>
- </row>
- <row>
- <entry>RNVÌvfÌvpeB</entry>
- <entry><literal>{[aliasname].element.[propertyname]}</literal></entry>
- <entry><literal>NAME as {coll.element.name}</literal></entry>
- </row>
- <row>
- <entry>RNVÌvfÌSvpeB</entry>
- <entry><literal>{[aliasname].element.*}</literal></entry>
- <entry><literal>{coll.element.*}</literal></entry>
- </row>
- <row>
- <entry>RNVÌSvpeB</entry>
- <entry><literal>{[aliasname].*}</literal></entry>
- <entry><literal>{coll.*}</literal></entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </sect1>
-
- <sect1 id="querysql-namedqueries" revision="3">
- <title>¼Ot«SQLNG</title>
-
- <para>¼Ot«SQLNGÍ}bsOhL
gÅè`·é±ÆªÅ«A
- ¼Ot«HQLNGÆS¯¶û@ÅÄԱƪūܷB
- ±ÌêA<literal>addEntity()</literal> ðÄÑo·KvÍ <emphasis>È¢</emphasis> Å·B</para>
-
- <programlisting><![CDATA[<sql-query name="persons">
- <return alias="person" class="eg.Person"/>
- SELECT person.NAME AS {person.name},
- person.AGE AS {person.age},
- person.SEX AS {person.sex}
- FROM PERSON person
- WHERE person.NAME LIKE :namePattern
-</sql-query>]]></programlisting>
-
- <programlisting><![CDATA[List people = sess.getNamedQuery("persons")
- .setString("namePattern", namePattern)
- .setMaxResults(50)
- .list();]]></programlisting>
-
- <para>ÖAð·é½ßÆRNVðú»·éNGðè`·é½ßÉA»ê¼ê
- <literal><return-join></literal> Æ <literal><load-collection></literal>
- vfðg¢Ü·B</para>
-
- <programlisting><![CDATA[<sql-query name="personsWith">
- <return alias="person" class="eg.Person"/>
- <return-join alias="address" property="person.mailingAddress"/>
- SELECT person.NAME AS {person.name},
- person.AGE AS {person.age},
- person.SEX AS {person.sex},
- adddress.STREET AS {address.street},
- adddress.CITY AS {address.city},
- adddress.STATE AS {address.state},
- adddress.ZIP AS {address.zip}
- FROM PERSON person
- JOIN ADDRESS adddress
- ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'
- WHERE person.NAME LIKE :namePattern
-</sql-query>]]></programlisting>
-
- <para>¼Ot«SQLNGÍXJlðÔ·±ÆàūܷB
- <literal><return-scalar></literal> vfðgÁÄA
- ñÌʼÆHibernateÌ^ð龵ȯêÎÈèܹñB</para>
-
- <programlisting><![CDATA[<sql-query name="mySqlQuery">
- <return-scalar column="name" type="string"/>
- <return-scalar column="age" type="long"/>
- SELECT p.NAME AS name,
- p.AGE AS age,
- FROM PERSON p WHERE p.NAME LIKE 'Hiber%'
-</sql-query>]]></programlisting>
-
-
- <para>UgZbgÌ}bsOîñð <literal><resultset></literal>
- ÉOoµ·é±ÆªÅ«Ü·B
- ¡Ì¼Ot«NGÅÄpµ½èA<literal>setResultSetMapping()</literal>
- APIðʵÄÄpµ½èūܷB
- </para>
-
- <programlisting><![CDATA[<resultset name="personAddress">
- <return alias="person" class="eg.Person"/>
- <return-join alias="address" property="person.mailingAddress"/>
-</resultset>
-
-<sql-query name="personsWith" resultset-ref="personAddress">
- SELECT person.NAME AS {person.name},
- person.AGE AS {person.age},
- person.SEX AS {person.sex},
- adddress.STREET AS {address.street},
- adddress.CITY AS {address.city},
- adddress.STATE AS {address.state},
- adddress.ZIP AS {address.zip}
- FROM PERSON person
- JOIN ADDRESS adddress
- ON person.ID = address.PERSON_ID AND address.TYPE='MAILING'
- WHERE person.NAME LIKE :namePattern
-</sql-query>]]></programlisting>
-
- <sect2 id="propertyresults">
- <title>ñÆñÌʼð¾¦IÉwè·é½ßÉ return-property ðg¤</title>
-
- <para>ʼð}ü·é½ßÉ <literal>{}</literal> \¶ðg¤ãíèÉA
- <literal><return-property></literal> ðg¢A
- ÇÌñÌʼðg¤Ì©ð¾¦Å«Ü·B</para>
-
- <programlisting><![CDATA[<sql-query name="mySqlQuery">
- <return alias="person" class="eg.Person">
- <return-property name="name" column="myName"/>
- <return-property name="age" column="myAge"/>
- <return-property name="sex" column="mySex"/>
- </return>
- SELECT person.NAME AS myName,
- person.AGE AS myAge,
- person.SEX AS mySex,
- FROM PERSON person WHERE person.NAME LIKE :name
-</sql-query>
-]]></programlisting>
-
- <para><literal><return-property></literal> Í¡Ìñ൦ܷB
- ±êÍA¡ñÌvpeBð«ßש§äūȢƢ¤A
- <literal>{}</literal> \¶Ì§ÀððµÜ·B</para>
-
- <programlisting><![CDATA[<sql-query name="organizationCurrentEmployments">
- <return alias="emp" class="Employment">
- <return-property name="salary">
- <return-column name="VALUE"/>
- <return-column name="CURRENCY"/>
- </return-property>
- <return-property name="endDate" column="myEndDate"/>
- </return>
- SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer},
- STARTDATE AS {emp.startDate}, ENDDATE AS {emp.endDate},
- REGIONCODE as {emp.regionCode}, EID AS {emp.id}, VALUE, CURRENCY
- FROM EMPLOYMENT
- WHERE EMPLOYER = :id AND ENDDATE IS NULL
- ORDER BY STARTDATE ASC
-</sql-query>]]></programlisting>
-
- <para>±ÌáÅÍA}ü̽ßÌ <literal>{}</literal> \¶Æ¢ÁµåÉA
- <literal><return-property></literal> ðgÁĢ鱯Éӵľ³¢B
- ñÆvpeBðÇÌæ¤ÉQÆ·é©ðI×Ü·B</para>
-
- <para>}bsOÉ discriminator ªÜÜêÄ¢éêA
- discriminator Ìñðwè·é½ßÉA<return-discriminator>
- ðgíȯêÎÈèܹñB</para>
- </sect2>
-
- <sect2 id="sp_query" revision="1">
- <title>â¢í¹·é½ßÉXgAhvV[Wðg¤</title>
-
- <para>HibernateÍo[W3©çAXgAhvV[WÆXgAhÖoRÌâ¢í¹ª
- T|[g³êܵ½B
- È~̶̽ÍA¼ûÉÄÍÜèÜ·B
- XgAhvV[WâXgAhÖðHibernateÅg¤½ßÉÍA
- 1ÔÚÌoÍp[^ƵÄUgZbgðԳȯêÎÈèܹñB
- Oracle 9iàµÍ»êÈãÌo[WjÌXgAhvV[WÌáðȺɦµÜ·B</para>
-
- <programlisting><![CDATA[CREATE OR REPLACE FUNCTION selectAllEmployments
- RETURN SYS_REFCURSOR
-AS
- st_cursor SYS_REFCURSOR;
-BEGIN
- OPEN st_cursor FOR
- SELECT EMPLOYEE, EMPLOYER,
- STARTDATE, ENDDATE,
- REGIONCODE, EID, VALUE, CURRENCY
- FROM EMPLOYMENT;
- RETURN st_cursor;
- END;]]></programlisting>
-
- <para>HibernateűÌNGðg¤½ßÉÍA
- ¼Ot«NGÅ}bsO·éKvª èÜ·B</para>
-
- <programlisting><![CDATA[<sql-query name="selectAllEmployees_SP" callable="true">
- <return alias="emp" class="Employment">
- <return-property name="employee" column="EMPLOYEE"/>
- <return-property name="employer" column="EMPLOYER"/>
- <return-property name="startDate" column="STARTDATE"/>
- <return-property name="endDate" column="ENDDATE"/>
- <return-property name="regionCode" column="REGIONCODE"/>
- <return-property name="id" column="EID"/>
- <return-property name="salary">
- <return-column name="VALUE"/>
- <return-column name="CURRENCY"/>
- </return-property>
- </return>
- { ? = call selectAllEmployments() }
-</sql-query>]]></programlisting>
-
- <para>ÓF¡ÌƱëAXgAhvV[WÍXJÆGeBeBðÔ·ÌÝÅ·B
- <literal><return-join></literal> Æ <literal><load-collection></literal>
- ÍT|[g³êĢܹñB</para>
-
- <sect3 id="querysql-limits-storedprocedures" revision="1">
- <title>XgAhvV[Wðg¤ãÅÌ[ƧÀ</title>
-
- <para>HibernateÅXgAhvV[WâÖðg¤½ßÉÍA
- »ÌvV[W͢©Ì[É·éKvª èÜ·B
- [ɵĢȢvV[WÍAHibernateÅg¤±ÆÍūܹñB
- »êÅàAµÄ¢È¢vV[Wðg¢½¢ÌÅ êÎA
- <literal>session.connection()</literal> ðʶÄÀsµÈ¯êÎÈèܹñB
- [Íf[^x[X²ÆÉÙÈèÜ·B
- XgAhvV[WÌZ}eBbNXÆV^bNXÍA
- f[^x[Xx_²ÆÉÙÈé½ßÅ·B</para>
-
- <para><literal>setFirstResult()/setMaxResults()</literal> ðgÁÄA
- XgAhvV[WNGðy[Wª¯·é±ÆÍūܹñB</para>
-
- <para>§·éÄÑoµûÍAWÅ éSQL92É]¤±ÆÅ·B
- <literal>{ ? = call functionName(<parameters>) }</literal> â
- <literal>{ ? = call procedureName(<parameters>) }</literal> Å·B
- lCeBuÈÄÑoµ\¶ÍT|[g³êĢܹñB</para>
-
- <para>OracleÉͺLÌ[ªKp³êÜ·B</para>
-
- <itemizedlist spacing="compact">
- <listitem>
- <para>ÖÍUgZbgðԳȯêÎÈèܹñB
- vV[WÌæêøÍUgZbgðÔ·½ßA
- <literal>OUT</literal> ÅȯêÎÈèܹñB
- Oracle 9Æ10ÅÍA<literal>SYS_REFCURSOR</literal> ðg¤±ÆÉæÁÄūܷB
- OracleÅÍ <literal>REF CURSOR</literal> ^ðè`·éKvª èÜ·B
- Oracle̶£ðQƵľ³¢B</para>
- </listitem>
- </itemizedlist>
-
- <para>SybaseÆMS SQLT[o[ÉKp³êé[ðºLɦµÜ·B</para>
-
- <itemizedlist spacing="compact">
- <listitem>
- <para>vV[WÍUgZbgðԳȯêÎÈèܹñB
- T[o[Í¡ÌUgZbgÆXVJEgðԵܷªA
- HibernateÍ1ÂÚÌUgZbg¾¯ðÔ·±ÆÉӵľ³¢B
- »Ì¼Í·×ÄÌÄçêÜ·B</para>
- </listitem>
-
- <listitem>
- <para>vV[WÌÅ <literal>SET NOCOUNT ON</literal> ðLøÉÅ«êÎA
- ¨»çø¦ªæÈéŵå¤B
- µ©µA±êÍKvðÅÍ èܹñB</para>
- </listitem>
- </itemizedlist>
- </sect3>
- </sect2>
- </sect1>
-
- <sect1 id="querysql-cud">
- <title>ì¬AXVAí̽ßÌJX^SQL</title>
-
- <para>Hibernate3Íì¬AXVAí̽ßÌJX^SQL¶ðgpūܷB
- NXÆRNVÌi±»@\ÍARtBO[Vɶ¬³ê½¶ñ
- iinsertsqlAdeletesqlAupdatesqlÈÇjÌZbgð·ÅÉ۵ĢܷB
- ±êç̶ñæèA
- <literal><sql-insert></literal>A
- <literal><sql-delete></literal>A
- <literal><sql-update></literal> Æ¢¤}bsO^OªDæ³êÜ·B</para>
-
- <programlisting><![CDATA[<class name="Person">
- <id name="id">
- <generator class="increment"/>
- </id>
- <property name="name" not-null="true"/>
- <sql-insert>INSERT INTO PERSON (NAME, ID) VALUES ( UPPER(?), ? )</sql-insert>
- <sql-update>UPDATE PERSON SET NAME=UPPER(?) WHERE ID=?</sql-update>
- <sql-delete>DELETE FROM PERSON WHERE ID=?</sql-delete>
-</class>]]></programlisting>
-
- <para>SQLð¼Úf[^x[XÅÀs·é½ßADÝÌû¾ð©RÉgpūܷB
- f[^x[XÆ©ÌSQLðg¦ÎAR}bsOÌ|[^reBªºªèÜ·B</para>
-
- <para><literal>callable</literal> ®«ðZbg·êÎA
- XgAhvV[WðgpūܷB</para>
-
- <programlisting><![CDATA[<class name="Person">
- <id name="id">
- <generator class="increment"/>
- </id>
- <property name="name" not-null="true"/>
- <sql-insert callable="true">{call createPerson (?, ?)}</sql-insert>
- <sql-delete callable="true">{? = call deletePerson (?)}</sql-delete>
- <sql-update callable="true">{? = call updatePerson (?, ?)}</sql-update>
-</class>]]></programlisting>
-
- <para>¡ÌƱëAÊup[^ÌÔÍÆÄàdvÅ·B
- ·Èí¿AHibernateªúÒ·éÅȯêÎÈèܹñB</para>
-
- <para><literal>org.hiberante.persister.entity</literal> xÌfobOOð
- LøÉ·é±ÆÉæÁÄAúÒ³êéÔðm©ßçêÜ·B
- ±ÌxðLøÉ·é±ÆÉæèAGeBeBÌì¬AXVAíÈÇÅ
- gp³êéÃIÈSQLªoͳêÜ·B
- iúÒ³êéðmF·é½ßÉÍAHibernateª¶¬·éÃIÈSQLðI[o[Ch·é
- JX^SQLð}bsOt@CÉÜßÈ¢±ÆðYêȢž³¢Bj</para>
-
- <para>XgAhvV[WÍ}ü/XV/í³ê½sðÔ·Kvª èÜ·
- iÇÝÝÌêÍAԳȢæèÍÔ·ûªæ¢Å·jB
- ÀsÉHibernateªSQL¶Ì¬÷ð`FbN·é©çÅ·B
- HibernateÍACUD̽ßÌlÌoÍp[^ƵÄA
- SQL¶ÌÅÌp[^ð¢ÂàL^µÜ·B</para>
-
- <programlisting><![CDATA[CREATE OR REPLACE FUNCTION updatePerson (uid IN NUMBER, uname IN VARCHAR2)
- RETURN NUMBER IS
-BEGIN
-
- update PERSON
- set
- NAME = uname,
- where
- ID = uid;
-
- return SQL%ROWCOUNT;
-
-END updatePerson;]]></programlisting>
- </sect1>
-
- <sect1 id="querysql-load">
- <title>[h̽ßÌJX^SQL</title>
-
- <para>GeBeBðÇÝÞ½ßÌÆ©ÌSQLiàµÍHQLjNGàé¾Å«Ü·B</para>
-
- <programlisting><![CDATA[<sql-query name="person">
- <return alias="pers" class="Person" lock-mode="upgrade"/>
- SELECT NAME AS {pers.name}, ID AS {pers.id}
- FROM PERSON
- WHERE ID=?
- FOR UPDATE
-</sql-query>]]></programlisting>
-
- <para>±êÍAܳÉiÈOc_µ½j¼Ot«NGÌé¾Å·B
- ±Ì¼Ot«NGðNXÌ}bsO©çQÆÅ«Ü·B</para>
-
- <programlisting><![CDATA[<class name="Person">
- <id name="id">
- <generator class="increment"/>
- </id>
- <property name="name" not-null="true"/>
- <loader query-ref="person"/>
-</class>]]></programlisting>
-
-
- <para>±êÍXgAhvV[Wų¦à®ìµÜ·B</para>
-
- <para>Ìæ¤ÉARNVð[h·é½ßÌNG³¦è`µÄæ¢Å·B</para>
-
- <programlisting><![CDATA[<set name="employments" inverse="true">
- <key/>
- <one-to-many class="Employment"/>
- <loader query-ref="employments"/>
-</set>]]></programlisting>
-
- <programlisting><![CDATA[<sql-query name="employments">
- <load-collection alias="emp" role="Person.employments"/>
- SELECT {emp.*}
- FROM EMPLOYMENT emp
- WHERE EMPLOYER = :id
- ORDER BY STARTDATE ASC, EMPLOYEE ASC
-</sql-query>]]></programlisting>
-
- <para>Ìæ¤ÉAtFb`ÉæèRNVð[h·é
- GeBeB[_[ðè`ūܷB</para>
-
- <programlisting><![CDATA[<sql-query name="person">
- <return alias="pers" class="Person"/>
- <return-join alias="emp" property="pers.employments"/>
- SELECT NAME AS {pers.*}, {emp.*}
- FROM PERSON pers
- LEFT OUTER JOIN EMPLOYMENT emp
- ON pers.ID = emp.PERSON_ID
- WHERE ID=?
-</sql-query>]]></programlisting>
- </sect1>
-
+<?xml version="1.0" encoding="Shift_JIS"?>
+<chapter id="querysql" revision="2">
+ <title>lCeBuSQL</title>
+
+ <para>f[^x[XÌlCeBuSQLû¾ðgÁÄNGð\»·é±ÆàūܷB
+ NGqgâOracleÌ <literal>CONNECT</literal> L[[hÌæ¤ÉA
+ f[^x[XÆ©Ì@\ðpµ½¢Æ«Ég¦Ü·B
+ SQL/JDBCð¼ÚgpµÄ¢éAvP[V©çHibernateÖÌÚsàeÕɵĢܷB</para>
+
+ <para>Hibernate3ÅÍA¶¬AXVAíAÇÝÝÌæ¤È·×ÄÌ
+ SQLiXgAhvV[WðÜÞjðè«Å«Ü·B</para>
+
+ <sect1 id="querysql-creating" revision="4">
+ <title><literal>SQLQuery</literal> Ìgp</title>
+
+ <para>lCeBuÈSQLNGÌÀsÍ <literal>SQLQuery</literal>
+ C^[tFCXðʵħäµÜ·B
+ <literal>SQLQuery</literal> C^[tFCXÍ
+ <literal>Session.createSQLQuery()</literal> ðÄÑoµÄ澵ܷB
+ ±ÌAPIðgÁÄâ¢í¹·éû@ðȺÅྵܷB</para>
+
+ <sect2>
+ <title>XJ[ÌNG</title>
+
+ <para>Åàî{IÈSQLNGÍXJ[iljÌXgð¾é±ÆÅ·B</para>
+
+ <programlisting><![CDATA[sess.createSQLQuery("SELECT * FROM CATS").list();
+sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CATS").list();
+]]></programlisting>
+
+ <para>±êçÍÇ¿çàACATSe[uÌeJÌXJ[lðÜÞ
+ ObjectzñiObject[]jÌXgðԵܷB
+ Ô·XJ[lÌÀÛÌÔÆ^ðè·é½ßÉA
+ HibernateÍResultSetMetadataðgpµÜ·B</para>
+
+ <para><literal>ResultSetMetadata</literal> ðgp·éI[o[wbhðð¯é½ßA
+ àµÍPɽªÔ³ê驾mÉ·é½ßA<literal>addScalar()</literal>
+ ðg¦Ü·B</para>
+
+ <programlisting><![CDATA[sess.createSQLQuery("SELECT * FROM CATS")
+ .addScalar("ID", Hibernate.LONG)
+ .addScalar("NAME", Hibernate.STRING)
+ .addScalar("BIRTHDATE", Hibernate.DATE)
+]]></programlisting>
+
+ <para>±ÌNGÅwè³êÄ¢éàÌðºLɦµÜ·B</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>SQLNG¶ñ</para>
+ </listitem>
+
+ <listitem>
+ <para>Ô³êéJÆ^</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>±êÍܾObjectzñðԵܷªA
+ <literal>ResultSetMetdata</literal> ðgpµÜ¹ñB
+ ½¾µA»ÌãíèÉîbÉ éUgZbg©ç
+ IDANAMEABIRTHDATE Jð»ê¼ê
+ LongAStringAShort Ƶľ¦IÉæ¾µÜ·B
+ ±êÍRÂÌJðÔ·ÌÝŠ鱯àÓ¡µÜ·B
+ ½Æ¦ANGª <literal>*</literal> ðgpµA
+ ñµ½RÂæè½ÌJðÔ¹éÆµÄàÅ·B</para>
+
+ <para>XJ[Ì^îñðȱÆàūܷB</para>
+
+ <programlisting><![CDATA[sess.createSQLQuery("SELECT * FROM CATS")
+ .addScalar("ID", Hibernate.LONG)
+ .addScalar("NAME")
+ .addScalar("BIRTHDATE")
+]]></programlisting>
+
+ <para>
+ ±êÍ{¿IÉOƯ¶NGÅ·ªAA
+ NAME Æ BIRTHDATE Ì^ðßé½ßÉ <literal>ResultSetMetaData</literal>
+ ðgpµÜ·BêûAID Ì^;¦IÉwè³êĢܷB
+ </para>
+
+ <para>
+ ResultSetMetaData ©çÔ³êé java.sql.Types ð Hibernate Ì^É
+ }bsO·é±ÆÍADialect ª§äµÜ·B
+ ¾¦³ê½^ª}bsO³êĢȢ©AÊÌ^ªúÒµ½àÌÆÙÈéêA
+ Dialect Ì <literal>registerHibernateType</literal> ðÄÑoµA
+ JX^}CYūܷB
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>GeBeBÌNG</title>
+
+ <para>±±ÜÅÌNGÍA·×ÄXJ[lðÔ·àÌŵ½B
+ î{IÉAUgZbg©çu¢ÁHvÌlðԵܷB
+ È~ÅÍA<literal>addEntity()</literal> ÉæèAlCeBuSQLNG©ç
+ GeBeBIuWFNgðæ¾·éû@ð¦µÜ·B</para>
+
+ <programlisting><![CDATA[sess.createSQLQuery("SELECT * FROM CATS").addEntity(Cat.class);
+sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE FROM CATS").addEntity(Cat.class);
+]]></programlisting>
+
+ <para>±ÌNGÅwè³êÄ¢éàÌðºLɦµÜ·B</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>SQLNG¶ñ</para>
+ </listitem>
+
+ <listitem>
+ <para>NGªÔ·GeBeBÆSQLe[uÌʼ
+ </para>
+ </listitem>
+ </itemizedlist>
+
+ <para>CatªID, NAME, BIRTHDATEÌJðgÁÄNXÉ}bsO³êéêA
+ ãLÌNGÍÇ¿çàAvfªCatGeBeBÅ éXgðԵܷB</para>
+
+ <para>GeBeBðÊÌGeBeBÉ <literal>½Îê</literal> Å}bsOµÄ¢éêÍA
+ lCeBuNGðÀs·éÛÉA±ÌÊÌGeBeBðÔ·±ÆàvµÜ·B
+ ³àȯêÎAf[^x[XÅLÌucolumn not found(Jª©Â©èܹñ)vG[ª¶µÜ·B
+ * \Lðgpµ½ÛÍAÇÁÌJª©®IÉÔ³êÜ·ªA
+ ÌáÌæ¤ÉA<literal>Dog</literal> É <literal>½Îê</literal> Š鱯ð
+ ¾¦·é±Æð½¿ÍDÝÜ·B</para>
+
+ <programlisting><![CDATA[sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE, DOG_ID FROM CATS").addEntity(Cat.class);
+]]></programlisting>
+
+ <para>±êÉæè cat.getDog() ª³µ@\µÜ·B</para>
+ </sect2>
+
+ <sect2>
+ <title>ÖAÆRNVÌì</title>
+
+ <para>vLVðú»·é½ßÌ]ªÈðð¯é½ßA
+ <literal>Dog</literal> ÌŦūܷB
+ ±êÍ <literal>addJoin()</literal> \bhÉæès¢Ü·B
+ ÖAàµÍRNVÉūܷB
+ </para>
+
+ <programlisting><![CDATA[sess.createSQLQuery("SELECT c.ID, NAME, BIRTHDATE, DOG_ID, D_ID, D_NAME FROM CATS c, DOGS d WHERE c.DOG_ID = d.D_ID")
+ .addEntity("cat", Cat.class)
+ .addJoin("cat.dog");
+]]></programlisting>
+
+ <para>±ÌáÌÅAÔ³êé <literal>Cat</literal> ÍA
+ f[^x[XÖÌ]ªÈµÅA
+ ®SÉú»³ê½ <literal>dog</literal> vpeBð¿Ü·B
+ ÎÛÌvpeBÖÌpXðwèū鿤ÉA
+ ʼiucatvjðÇÁµ½±ÆÉӵľ³¢B
+ RNV̦௶æ¤ÉūܷB
+ ½Æ¦ÎA<literal>Cat</literal> ªêνŠ<literal>Dog</literal>
+ ðÁÄ¢½êAÌæ