[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Ìæ¤ÉÈèÜ·B</para>
+
+ <programlisting><![CDATA[sess.createSQLQuery("SELECT ID, NAME, BIRTHDATE, D_ID, D_NAME, CAT_ID FROM CATS c, DOGS d WHERE c.ID = d.CAT_ID")
+ .addEntity("cat", Cat.class)
+ .addJoin("cat.dogs");
+]]></programlisting>
+
+ <para>»ÝÌÆ±ëA
+ HibernateÅg¢â··é½ßÌSQLNGÌg£ÈµÉA
+ lCeBuNGŽ©ðÂ\É·éÀEÉĢܷB
+ ¯¶^ÌGeBeBð¡Ô·ÛâAftHgÌʼâñ¼Å\ªÅÍÈ¢êÉA
+ âèÍN±ènßÜ·B
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>¡GeBeBÌæ¾</title>
+
+ <para>±±ÜÅÍAUgZbgÌJ¼ÍA
+ }bsOt@CÅwè³ê½J¼Æ¯¶Å 鯼èµÄ¢Üµ½B
+ ¡Ìe[uª¯¶J¼ðÂêª é½ßA
+ ¡e[uð·éSQLNGÅâèÆÈéêª èÜ·B</para>
+
+ <para>ºLÌæ¤Èi¸sµ»¤ÈjNGÅÍA
+ JʼCWFNVicolumn alias injectionjªKvÅ·B</para>
+
+ <programlisting><![CDATA[sess.createSQLQuery("SELECT c.*, m.* FROM CATS c, CATS m WHERE c.MOTHER_ID = m.ID")
+ .addEntity("cat", Cat.class)
+ .addEntity("mother", Cat.class)
+]]></programlisting>
+
+ <para>±ÌNGÌÓ}ÍA
+ Ps²ÆÉQÂÌCatCX^XAÂÜèLÆ»ÌêeðÔ·Æ¢¤±ÆÅ·B
+ ¯¶J¼É}bsO·é±ÆÉæè¼OªÕË·é½ßA±ÌNG͸sµÜ·B
+ x[^x[XÉæÁÄÍAÔ³êéJÌʼª "c.ID"A"c.NAME" ÈÇÌ`®Å èA
+ }bsOÅwè³ê½Ji"ID" Æ "NAME"jƵȢ½ßA¸sµÜ·B</para>
+
+
+ <para>ºLÌ`®ÍAJ¼ªd¡µÄàåävÅ·B</para>
+
+ <programlisting><![CDATA[sess.createSQLQuery("SELECT {cat.*}, {mother.*} FROM CATS c, CATS m WHERE c.MOTHER_ID = m.ID")
+ .addEntity("cat", Cat.class)
+ .addEntity("mother", Cat.class)
+]]></programlisting>
+
+ <para>±ÌNGÅwè³êÄ¢éàÌðºLɦµÜ·B</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>SQLNG¶ñ
+ iHibernateªJÌʼð}ü·é½ßÌv[Xz_ðÜÞj</para>
+ </listitem>
+
+ <listitem>
+ <para>NGÉæÁÄÔ³êéGeBeB</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>ãLÅgpµÄ¢é {cat.*} Æ {mother.*} Æ¢¤\LÍA
+ u·×ÄÌvpeBvð\·Èª`Å·B
+ ãíèÉA¾¦IÉJðñµÄàæ¢Å·ªA
+ »ÌêÍAHibernateÉevpeBÉηéSQLJÌʼð}ü³¹é׫ŵå¤B
+ JÌʼ̽ßÌv[Xz_ÍAe[uÌÊ¼ÉæÁÄCü³ê½vpeB¼Å·B
+ ºLÌáÅÍAÊÌe[u cat_log ©ç
+ }bsO^f[^Åè`³ê½ Cat Æ»Ìêeð³µÜ·B
+ àµDÞÈçAwhereßÌÅàAvpeBÌʼðg¦Ü·B</para>
+
+ <programlisting><![CDATA[String sql = "SELECT ID as {c.id}, NAME as {c.name}, " +
+ "BIRTHDATE as {c.birthDate}, MOTHER_ID as {c.mother}, {mother.*} " +
+ "FROM CAT_LOG c, CAT_LOG m WHERE {c.mother} = c.ID";
+
+List loggedCats = sess.createSQLQuery(sql)
+ .addEntity("cat", Cat.class)
+ .addEntity("mother", Cat.class).list()
+]]></programlisting>
+
+ <sect3 id="querysql-aliasreferences" revision="2">
+ <title>ʼÆvpeBÌt@X</title>
+
+ <para>½ÌêAãLÌæ¤ÈʼCWFNVªKvÅ·B
+ ½¾µA¡vpeBAp³¯ÊqARNVÈÇÌæ¤È
+ æè¡GÈ}bsOÆÖA·éNGªÈ¯êÎÅ·B
+ éÁèÌʼðgp·é±ÆÉæèAHibernateÍKØÈʼð}üūܷB</para>
+
+ <para>ʼCWFNVƵÄgpÅ«éàÌðº\ɦµÜ·B
+ ÓFº\ÌʼÍêáÅ·B
+ »ê¼êÌʼÍêÓÅ èAgp·éÛÉͨ»çÙÈé¼Oð¿Ü·B</para>
+
+ <table frame="topbot" id="aliasinjection-summary">
+ <title>ʼÉ}ü·é¼O</title>
+
+ <tgroup cols="3">
+ <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>
+ </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>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>dzêĢȢGeBeBÌæ¾</title>
+
+ <para>lCeBuSQLNGÉ ResultTransformer ðKpūܷB
+ ºLÌæ¤ÉAá¦ÎAdzêĢȢGeBeBðԵܷB</para>
+
+ <programlisting><![CDATA[sess.createSQLQuery("SELECT NAME, BIRTHDATE FROM CATS")
+ .setResultTransformer(Transformers.aliasToBean(CatDTO.class))]]></programlisting>
+
+ <para>±ÌNGÅwè³êÄ¢éàÌðºLɦµÜ·B</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>SQLNG¶ñ</para>
+ </listitem>
+
+ <listitem>
+ <para>ÊðÏ·µ½àÌ</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>ãLÌNGÍACX^X»µANAME Æ BIRTHDATE Ìlð
+ ηévpeBàµÍtB[hÉ}üµ½ <literal>CatDTO</literal>
+ ÌXgðԵܷB</para>
+ </sect2>
+
+ <sect2>
+ <title>p³Ì§ä</title>
+
+ <para>p³ÌêÆµÄ}bsO³ê½GeBeBðâ¢í¹élCeBuSQLNGÍA
+ x[XÌNXƻ̷×ÄÌTuNXÌvpeB·×ÄðÜÜȯêÎÈèܹñB</para>
+ </sect2>
+
+ <sect2>
+ <title>p[^</title>
+
+ <para>lCeBuSQLNGÍAÈºÌæ¤ÉA
+ ¼Ot«p[^i:namejƯlÉÊup[^ðT|[gµÜ·B</para>
+
+ <programlisting><![CDATA[Query query = sess.createSQLQuery("SELECT * FROM CATS WHERE NAME like ?").addEntity(Cat.class);
+List pusList = query.setString(0, "Pus%").list();
+
+query = sess.createSQLQuery("SELECT * FROM CATS WHERE NAME like :name").addEntity(Cat.class);
+List pusList = query.setString("name", "Pus%").list(); ]]></programlisting>
+ </sect2>
+
+ </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>
+
+ <para>ãíèÉAhbmt@CàÌUgZbgÌ}bsOîñð
+ ¼ÚJavaR[hÌÅ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>
+
+ <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>
+
</chapter>
\ No newline at end of file
Modified: branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/session_api.xml
===================================================================
--- branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/session_api.xml 2006-12-07 22:28:06 UTC (rev 10954)
+++ branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/session_api.xml 2006-12-08 08:01:55 UTC (rev 10955)
@@ -434,7 +434,7 @@
</sect3>
- <sect3 id="objectstate-querying-executing-named">
+ <sect3 id="objectstate-querying-executing-named" revision="1">
<title>¼Ot«NGÌOoµ</title>
<para>
@@ -443,7 +443,7 @@
g¤±ÆðYêÈ¢æ¤ÉµÜµå¤Bj </para>
- <programlisting><![CDATA[<query name="eg.DomesticCat.by.name.and.minimum.weight"><![CDATA[
+ <programlisting><![CDATA[<query name="ByNameAndMaximumWeight"><![CDATA[
from eg.DomesticCat as cat
where cat.name = ?
and cat.weight > ?
@@ -452,7 +452,7 @@
<para>p[^ÌoCfBOÆÀsÍAÈºÌæ¤ÈvOÅsíêÜ·B </para>
- <programlisting><![CDATA[Query q = sess.getNamedQuery("eg.DomesticCat.by.name.and.minimum.weight");
+ <programlisting><![CDATA[Query q = sess.getNamedQuery("ByNameAndMaximumWeight");
q.setString(0, name);
q.setInt(1, minWeight);
List cats = q.list();]]></programlisting>
@@ -460,7 +460,12 @@
<para> ÀÛÌvOR[hÍAgíêéNG¾êÉ˶µÄ¢È¢±ÆÉӵܵå¤B
^f[^ÉÍAlCeBuSQLNGðè`·é±ÆàūܷB ܽAù¶ÌNGð}bsOt@CÉÚ·±ÆÅA
HibernateÉÚs·é±ÆàūܷB </para>
-
+ <para>
+ <literal><hibernate-mapping></literal> ÌÌNGè`ÍANGÉηé
+ j[NȼOªKvȱÆÉàӵľ³¢B»êÉεÄA <literal><class></literal> ÌÌ
+ NGè`ÍANXÌ®SÀ輪OÉt¯çêéÌÅA©®IÉj[NȼOÉÈèÜ·B
+ áF <literal>eg.Cat.ByNameAndMaximumWeight</literal>
+ </para>
</sect3>
</sect2>
Modified: branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/tutorial.xml
===================================================================
--- branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/tutorial.xml 2006-12-07 22:28:06 UTC (rev 10954)
+++ branches/Branch_3_2/Hibernate3/doc/reference/ja/modules/tutorial.xml 2006-12-08 08:01:55 UTC (rev 10955)
@@ -6,13 +6,13 @@
<title>O«</title>
<para>
- ±ÌÍÍHibernateðßÄg¤[UÖÌüåIÈ`
[gAÅ·B
+ ±ÌÍÍHibernateðßÄg¤[Uü¯ÌüåIÈ`
[gAÅ·B
Cf[^x[Xðg¤ÈPÈR}hCAvP[V©çnßA
êàêàí©èâ·¢âèûÅJðißÜ·B
</para>
<para>
- ±Ì`
[gAÍHibernateðßÄg¤[UðÓ}µ½àÌÅ·ªA
+ ±Ì`
[gAÍHibernateðßÄg¤[UðzèµÄ¢Ü·ªA
ð·éÉÍJavaÆSQLÉ¢ÄÌm¯ªKvÅ·B
±êÍMichael GloeglÌèÉæé`
[gAðº~«ÉµÄ¢Ü·ªA
±±ÅT[hp[eBCuƾÁÄ¢éÌÍAJDK 1.4Æ5.0pÌàÌÅ·B
@@ -20,7 +20,8 @@
</para>
<para>
- `
[gAÌ\[XR[hÍHibernatefBXgr
[VÌ <literal>doc/reference/tutorial/</literal> É èÜ·B
+ `
[gAÌ\[XR[hÍHibernatefBXgr
[VÌ
+ <literal>doc/reference/tutorial/</literal> É èÜ·B
</para>
</sect1>
@@ -63,7 +64,7 @@
log4j.jar ]]></programlisting>
<para>
- ±êª <emphasis>{hL
gLq_ÅÌ</emphasis> HibernateÌKvÅáÀÌCuÅ·
+ ±êª <emphasis>{hL
g·M_ÅÌ</emphasis> HibernateÌKvÅáÀÌCuÅ·
iCA[JCuÌhibernate3.jaràRs[µÄ¢é±ÆÉӵľ³¢jB
HibernateÌo[WÉæÁÄͳçÉKvÈCuâAsvÈCuª é©àµêܹñB
HibernatefBXgr
[VÌ <literal>lib/</literal> fBNgÉ é
@@ -80,7 +81,7 @@
<title>ÅÌNX</title>
<para>
- ÅÌi±NX͢©ÌvpeBðÂPÈJavaBeanNXÅ·B
+ ÅÌi±NXÍAvpeBð¢Â©ÂVvÈJavaBeanÅ·F
</para>
<programlisting><![CDATA[package events;
@@ -233,7 +234,7 @@
<literal>EVENTS</literal> e[uÉεÄAÇÌæ¤Éi±»µ½è[hµ½è·éÌ©ð
Hibernateɳ¦Ä«Üµ½B»µÄÂXÌCX^XÍe[uÌsƵÄ\»³êÜ·B
»êÅÍø«±«e[uÌåL[Éηéj[NȯÊqvpeBð}bsOµÄ¢«Ü·B
- ³çÉA±Ì¯Êq̵¢ÉCðg¢½È©Á½ÌǯlÉA
+ ³çÉA±Ì¯Êq̵¢ÉCðg¢½È©Á½ÌƯlÉA
ãÌåL[JÉηéHibernate̯Êq¶¬íªðÝèµÜ·B
</para>
@@ -398,7 +399,7 @@
<property name="dialect">org.hibernate.dialect.HSQLDialect</property>
<!-- Enable Hibernate's automatic session context management -->
- <property name="current_session__class">thread</property>
+ <property name="current_session_context_class">thread</property>
<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
@@ -814,7 +815,6 @@
µ©µãLÌXebvÉ]¦ÎAhbm2ddlªÅÉÀs³ê½Æ«Éf[^x[XXL[}ð쬵A
»ÌãÌÀsɨ¢Äà±ÌXL[}ðgp·éÌÅAâèÍN±çȢŵå¤B
}bsOâf[^x[XXL[}ðÏXµ½Æ«ÍAà¤êxhbm2ddlðLøÉµÄ¾³¢B
-
</para>
</sect2>
@@ -882,7 +882,6 @@
lXªCxgÉQÁÅ«ACxgªQÁÒðÂÌ;ç©Å·B
µíȯêÎÈçÈ¢ÝvÌâèÍAûüA½dxARNVÌUé¢Å·B
</para>
-
</sect2>
<sect2 id="tutorial-associations-unidirset" revision="3">
@@ -976,7 +975,7 @@
</sect2>
- <sect2 id="tutorial-associations-working" revision="1">
+ <sect2 id="tutorial-associations-working" revision="2">
<title>ÖAð©¹é</title>
<para>
@@ -1053,7 +1052,7 @@
<literal>update</literal> ÌÄÑoµÍª£IuWFNgðÄÑi±»µÜ·B
±êÍAVµ¢ìÆPÊ(Unit of Work)ÉoCh·éƾ¦éŵå¤B
»Ì½ßª£ÌÔÉÁ¦çê½ÇÌæ¤ÈC³àf[^x[XÉZ[uūܷB
- ÀÌIuWFNgÌRNVÖÌC³iÇÁ¥íjà¯lÉZ[uūܷB
+ GeBeBIuWFNgÌRNVÖÌC³iÇÁ¥íjà¯lÉZ[uūܷB
</para>
<para>
@@ -1070,7 +1069,8 @@
Long eventId = mgr.createAndStoreEvent("My Event", new Date());
Long personId = mgr.createAndStorePerson("Foo", "Bar");
mgr.addPersonToEvent(personId, eventId);
- System.out.println("Added person " + personId + " to event " + eventId);]]></programlisting>
+ System.out.println("Added person " + personId + " to event " + eventId);
+}]]></programlisting>
<para>
±êͯ¶æ¤ÉdvÈ2ÂÌNXAÂÜè2ÂÌGeBeBÔÌÖAÌáŵ½B
@@ -1128,7 +1128,7 @@
HibernateɱÌRNVª¼ÌGeBeBÖÌQÆðÜܸA
<literal>String</literal> ^ÌvfÌRNVðÜÞ±Æð³¦Ü·B
i¬¶Ì¼O(string)ÍHibernateÌ}bsO^ܽÍRo[^Š鯢¤±ÆÅ·jB
- KÅ·ªA<literal>set</literal> vfÌ <literal>table</literal> ®«ÍA
+ JèԵܷªA<literal>set</literal> vfÌ <literal>table</literal> ®«ÍA
RNV̽ßÌe[u¼ðwèµÜ·B
<literal>key</literal> vfÍRNVe[uÌOL[J¼ðè`µÜ·B
<literal>element</literal> vfÌ <literal>column</literal> ®«Í <literal>String</literal>
@@ -1193,7 +1193,7 @@
<para>
ÉoûüÖAð}bsOµÜ·B
Javaż¤©çlÆCxgÌÖAð®ì³¹Ü·B
- f[^x[XXL[}ÍRÏíèܹñªA½dxͽνÌÜÜÅ·B
+ à¿ëñAf[^x[XXL[}ÍÏíèܹñªA½dxͽνÌÜÜÅ·B
[Vif[^x[XÍlbg[NvO~O¾êæèà_îÈÌÅA
irQ[VÌûüÌæ¤ÈàÌðKvƵܹñB
f[^Í çäéÌû@Å©½è³Å«éÆ¢¤±ÆÅ·B
@@ -1288,7 +1288,7 @@
</para>
<para>
- <literal>inverse</literal> }bsO®«ÆÍ¢Á½¢Èñŵ天H
+ <literal>inverse</literal> }bsO®«ÆÍ¢Á½¢½Åµå¤©H
JÒÆJavaÉÆÁÄÍAoûüNÍPɼ¤ÌQÆð³µÝè·éÆ¢¤±ÆÅ·B
µ©µHibernateÍi§ñá½ðð¯é½ßÉjSQLÌ <literal>INSERT</literal> Æ <literal>UPDATE</literal>
¶ð³mÉÏX·é½ßÌ\ªÈîñðÁĢȢÌÅA
@@ -1306,7 +1306,7 @@
</sect2>
<para>
- Åͱêð¬KÍÈWebAvP[VɵÄÝܵå¤B
+ Åͱêð¬³ÈWebAvP[VɵÄÝܵå¤B
</para>
</sect1>
@@ -1322,11 +1322,11 @@
f[^x[XÉi[µ½SÄÌCxgðXgÉÅ«A³çÉHTMLtH[©çVµ¢CxgðüÍÅ«éàÌÅ·B
</para>
- <sect2 id="tutorial-webapp-servlet">
+ <sect2 id="tutorial-webapp-servlet" revision="1">
<title>î{IÈServletÌLq</title>
<para>
- \[XfBNgÌ <literal>events</literal> pbP[WÉVµ¢NXð쬵ľ³¢B
+ Vµ¢NXðA\[XfBNgÌ <literal>events</literal> pbP[WÉ쬵ľ³¢B
</para>
<programlisting><![CDATA[package events;
@@ -1335,19 +1335,10 @@
public class EventManagerServlet extends HttpServlet {
- private final SimpleDateFormat dateFormatter =
- new SimpleDateFormat("dd.MM.yyyy");
-
// Servlet code
}]]></programlisting>
<para>
- <literal>dateFormatter</literal> Í <literal>Date</literal> IuWFNgÆ
- StringIuWFNgÌÔÌÏ·ðs¤c[ÅAãÅKvÆÈèÜ·B
- ±êÍT[ubgÌoƵÄ1ÂÌtH[}b^µ©½È¢±Æð¦µÜ·B
- </para>
-
- <para>
ServletÍHTTPÌ <literal>GET</literal> NGXgÌÝð·éÌÅA
<literal>doGet()</literal> ðÀµÜ·B
</para>
@@ -1356,6 +1347,8 @@
HttpServletResponse response)
throws ServletException, IOException {
+ SimpleDateFormat dateFormatter = new SimpleDateFormat("dd.MM.yyyy");
+
try {
// Begin unit of work
HibernateUtil.getSessionFactory()
@@ -1393,7 +1386,7 @@
<para>
ÅãÉNGXgÌÆHTML`檮¹µ½Æ«ÉAìÆPÊ(Unit of Work)ðI¹µÜ·B
àµâ`æÉâ誶µ½êAexceptionª°çêÄf[^x[XgUNVð[obNµÜ·B
- ±êÉæèA <literal>session-per-request</literal> p^[ª®¬µÜ·B
+ ±êÅ <literal>session-per-request</literal> p^[ª®¹µÜ·B
SÄÌT[ubgÉgUNV«EÌR[hðãíèÉAT[ubgtB^ÉLq·é±ÆàÂ\Å·B
<emphasis>Open Session in View</emphasis> ÆÄÎêé±Ìp^[É¢ÄÍA
HibernateÌWebTCgâWikiðQƵľ³¢B
@@ -1402,7 +1395,7 @@
</sect2>
- <sect2 id="tutorial-webapp-processing">
+ <sect2 id="tutorial-webapp-processing" revision="1">
<title>Æ`æ</title>
<para>
@@ -1429,7 +1422,7 @@
// Print page
printEventForm(out);
-listEvents(out);
+listEvents(out, dateFormatter);
// Write HTML footer
out.println("</body></html>");
@@ -1438,7 +1431,7 @@
<para>
JavaÆHTMLª¬Ý·éR[fBOX^CÍAæè¡GÈAvP[VÉÍKµÄ¢È¢Åµå¤
- i±Ì`
[gAÅÍî{IÈHibernateÌRZvgð¦µÄ¢é¾¯Å 鱯ðo¦Ä¨¢Ä¾³¢jB
+ i±Ì`
[gAÅÍAî{IÈHibernateÌRZvgð¦µÄ¢é¾¯Å 鱯ðo¦Ä¨¢Ä¾³¢jB
±ÌR[hÍHTMLÌwb_[Ætb^[ÌLqÅ·B
±Ìy[WÉÍACxgðüÍ·éHTMLtH[ÆAf[^x[XÉ éSÄÌCxgÌXgª\¦³êÜ·B
ÅÌ\bhͲPÈHTMLoÍÅ·B
@@ -1458,7 +1451,8 @@
HibernateÌ <literal>Session</literal> ðgpµÄANGðÀsµÜ·B
</para>
- <programlisting><![CDATA[private void listEvents(PrintWriter out) {
+ <programlisting><![CDATA[private void listEvents(PrintWriter out, SimpleDateFormat dateFormatter) {
+
List result = HibernateUtil.getSessionFactory()
.getCurrentSession().createCriteria(Event.class).list();
if (result.size() > 0) {
@@ -1494,12 +1488,15 @@
}]]></programlisting>
<para>
- ±êÅT[ubgª®¬µÜµ½B
- T[ubgÖÌNGXgÍAPÂÌ <literal>Session</literal> Æ <literal>Transaction</literal> ųêéŵå¤B
+ ±êÅT[ubgÌ®¬Å·B
+ T[ubgÖÌNGXgÍAêÂÌ <literal>Session</literal> Æ
+ <literal>Transaction</literal> ųêéŵå¤B
ÅÌX^hA[ÌAvP[VÌæ¤ÉA
HibernateÍ©®IɱêçÌIuWFNgðÀs·éXbhÉÑt¯é±ÆªÅ«Ü·B
- ±Ì±ÆÅJÒÍR[hÌC[ª¯ª©RÉÈèADÝÌû@Å <literal>SessionFactory</literal> ÖÌANZXªÅ«éæ¤ÉÈèÜ·B
- ÊíAJÒÍæèôû³ê½fUCðgpµÄAf[^ANZXÌR[hðf[^ANZXEIuWFNgiDAOp^[jÉÚ®·éŵå¤B
+ ±êÉæèAJÒª©RÉR[hðC[ª¯Å«A
+ D«Èû@Å <literal>SessionFactory</literal> ÖÌANZXªÅ«éæ¤ÉÈèÜ·B
+ ÊíAJÒÍæèôû³ê½fUCðgpµÄAf[^ANZXÌR[hð
+ f[^ANZXIuWFNgÉÚ®·éŵå¤iDAOp^[jB
æè½ÌáÍAHibernateÌWikiðQƵľ³¢B
</para>
@@ -1524,8 +1521,10 @@
</target>]]></programlisting>
<para>
- ±Ì^[QbgÍ <literal>hibernate-tutorial.war</literal> Æ¢¤t@CðvWFNgEfBNgÉ쬵ܷB
- ±Ìt@CÍ·×ÄÌCuÆ<literal>web.xml</literal> LqqðÜñŨèAvWFNgÌx[XEfBNgÉu©êÜ·B
+ ±Ì^[QbgÍ <literal>hibernate-tutorial.war</literal> Æ¢¤t@Cð
+ vWFNgfBNgÉ쬵ܷB
+ ±Ìt@CÍ·×ÄÌCuÆ <literal>web.xml</literal> LqqðÜñŨèA
+ vWFNgÌx[XfBNgÉu©ê鱯ðúÒ³êÜ·B
</para>
<programlisting><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
@@ -1549,15 +1548,17 @@
WebAvP[VÌRpCÆfvCÌOÉA <literal>jsdk.jar</literal> Æ¢¤
ÇÁÌCuªKvȱÆÉӵľ³¢B
±êÍJavaT[ubgÌJLbgÅ·B
- àµÜ¾±ÌCuð¨¿Å³¢ÈçASunÌEFuTCgÅüèµÄACuEfBNgÉRs[µÄ¾³¢B
- ±êÍRpCÉÌÝgp³êAWARpbP[W©çÍO³êÜ·B
+ àµÜ¾±ÌCuðÁĢȢÈçASunÌEFuTCgÅüèµÄA
+ CufBNgÉRs[µÄ¾³¢B
+ µ©µA±êÍRpCÉÌÝgp³êAWARpbP[W©çÍO³êÜ·B
</para>
<para>
- rhÆfvC̽ßÉAvWFNgEfBNgÅ <literal>ant war</literal> ðÄÑoµA
- <literal>hibernate-tutorial.war</literal> t@CðTomcatÌ <literal>webapp</literal> fBNgÉRs[µÄ¾³¢B
- TomcatðüèµÄ¢È¢ÌÅ êÎAüèµÄCXg[ðsÁľ³¢B
- ±ÌAvP[VÌfvC̽ßÉTomcatÌÝèðÏX·éKvÍ èܹñB
+ rhÆfvC̽ßÉAvWFNgfBNgÅ <literal>ant war</literal> ðÄÑoµA
+ <literal>hibernate-tutorial.war</literal> t@CðTomcatÌ <literal>webapp</literal>
+ fBNgÉRs[µÄ¾³¢B
+ ܾTomcatðCXg[µÄ¢È¯êÎA_E[hµÄAȺÌCXg[KChÉ]Áľ³¢B
+ µ©µA±ÌAvP[VÌfvC·é½ßÉATomcatÌÝèðÏX·éKvÍ èܹñB
</para>
<para>
@@ -1582,10 +1583,10 @@
</para>
<para>
- ·ÅÉHibernateÉεĩMð´¶êÎAÊ»¤¾Æv¤gsbNðTµÄA
- t@XhL
gÌÚÉÚðʵľ³¢B
+ à¤HibernateÉ©Mª êÎAt@XhL
gÌÚÉÚðʵÄA
+ Ê»¤¾Æv¤gsbNðTµÄ¾³¢B
ÅàpÉɿ⪠éÌÍAgUNVi<xref linkend="transactions"/>jA
- tFb`ptH[}Xi<xref linkend="performance"/>jA
+ tFb`ÌptH[}Xi<xref linkend="performance"/>jA
APIÌg¢ûi<xref linkend="objectstate"/>jÆNG
i<xref linkend="objectstate-querying"/>jÅ·B
</para>
Modified: branches/Branch_3_2/Hibernate3/doc/reference/ja/readme_ja.txt
===================================================================
--- branches/Branch_3_2/Hibernate3/doc/reference/ja/readme_ja.txt 2006-12-07 22:28:06 UTC (rev 10954)
+++ branches/Branch_3_2/Hibernate3/doc/reference/ja/readme_ja.txt 2006-12-08 08:01:55 UTC (rev 10955)
@@ -1 +1 @@
-This translated reference document is v3.1.2.
\ No newline at end of file
+This is v3.2.0
\ No newline at end of file
More information about the hibernate-commits
mailing list