[jboss-cvs] JBossAS SVN: r77739 - projects/docs/enterprise/4.3/Hibernate/Annotations_Reference_Guide/ja-JP.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Sep 1 04:13:24 EDT 2008


Author: khashida at redhat.com
Date: 2008-09-01 04:13:24 -0400 (Mon, 01 Sep 2008)
New Revision: 77739

Modified:
   projects/docs/enterprise/4.3/Hibernate/Annotations_Reference_Guide/ja-JP/Entity.po
Log:
finished all

Modified: projects/docs/enterprise/4.3/Hibernate/Annotations_Reference_Guide/ja-JP/Entity.po
===================================================================
--- projects/docs/enterprise/4.3/Hibernate/Annotations_Reference_Guide/ja-JP/Entity.po	2008-09-01 07:28:51 UTC (rev 77738)
+++ projects/docs/enterprise/4.3/Hibernate/Annotations_Reference_Guide/ja-JP/Entity.po	2008-09-01 08:13:24 UTC (rev 77739)
@@ -9,7 +9,7 @@
 "Project-Id-Version: Entity\n"
 "Report-Msgid-Bugs-To: http://bugs.kde.org\n"
 "POT-Creation-Date: 2008-08-11 00:59+0000\n"
-"PO-Revision-Date: 2008-08-31 15:29+1000\n"
+"PO-Revision-Date: 2008-09-01 18:12+1000\n"
 "Last-Translator: Kiyoto Hashida <khashida at redhat.com>\n"
 "Language-Team: Japanese <jp at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -2925,6 +2925,120 @@
 "literal> to <literal>Monkey</literal> (property name, <keycap>_</keycap>, "
 "Tiger primary column). </para> </sect5>"
 msgstr ""
+"<sect5 id=\"One_to_many-Bidirectional\"><title>2方向</title><para> "
+"many to one はほとんど常に、EJB3 仕様内で2方向関係でのオーナー側であるため、 "
+"one to many の関連づけは <literal>@OneToMany( mappedBy=...) によってアノテーションの "
+"追加がなされます。 </literal></para> "
+"<programlisting>@Entity\n"
+"public class Troop {\n"
+"    @OneToMany(mappedBy=\"troop\")\n"
+"    public Set&lt;Soldier&gt; getSoldiers() {\n"
+"    ...\n"
+"}\n"
+"\n"
+"@Entity\n"
+"public class Soldier {\n"
+"    @ManyToOne\n"
+"    @JoinColumn(name=\"troop_fk\")\n"
+"    public Troop getTroop() {\n"
+"    ...\n"
+"}              \n"
+"</programlisting><para> <classname>Troop</classname>  は、<literal>troop</literal> "
+"プロパティを介して、<literal>Soldier</literal> との 2方向の one to many 関係を持っています。 "
+"<literal>mappedBy</literal> 側では、物理的マッピングを定義する必要はありません "
+"(定義してはいけません)。</para><para>オーナー側として one-to-many 側を持つ2方向の "
+" one to many をマップするには、<literal>mappedBy</literal> 要素を削除して、many to one <literal>@JoinColumn</literal> を "
+"false へ挿入可能で、更新可能としてセットしなければなりません。このソリューションは明確に最適化されておらず、 "
+"追加の UPDATE ステートメントを表示するでしょう。</para> "
+"<programlisting>@Entity\n"
+"public class Troop {\n"
+"    @OneToMany\n"
+"    @JoinColumn(name=\"troop_fk\") //we need to duplicate the physical "
+"information\n"
+"    public Set&lt;Soldier&gt; getSoldiers() {\n"
+"    ...\n"
+"}\n"
+"\n"
+"@Entity\n"
+"public class Soldier {\n"
+"    @ManyToOne\n"
+"    @JoinColumn(name=\"troop_fk\", insertable=false, updatable=false)\n"
+"    public Troop getTroop() {\n"
+"    ...\n"
+"}\n"
+"</programlisting></sect5><sect5 id=\"One_to_many-Unidirectional"
+"\"><title>単一方向</title> <para>オーナーのエンティティ内で外部キーコラムを使用した "
+"単一方向の one to many はそれほど一般的でなく、実際に推薦できるものではありません。 "
+"このような関連づけには、join テーブルの使用を強く推奨します(次章で解説)。この種の "
+"関連づけは <literal>@JoinColumn</literal> を経由して記述されます。</para> "
+"<programlisting>\n"
+"@Entity\n"
+"public class Customer implements Serializable {\n"
+"    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)\n"
+"    @JoinColumn(name=\"CUST_ID\")\n"
+"    public Set&lt;Ticket&gt; getTickets() {\n"
+"    ...\n"
+"}\n"
+"\n"
+"@Entity\n"
+"public class Ticket implements Serializable {\n"
+"    ... //no bidir\n"
+"}\n"
+"               \n"
+"</programlisting> <para> <literal>Customer</literal> は join コラム "
+"<literal>CUST_ID</literal> を使用して <literal>Ticket</literal> との "
+"単一方向の関係を記述します。</para>"
+"</sect5><sect5 id=\"One_to_many-"
+"Unidirectional_with_join_table\"><title> join テーブル使う単一方向</"
+"title> <para> join テーブル使う単一方向がより好まれます。この関連づけは "
+"<literal>@JoinTable</literal> を介して記述されます。 </para> "
+"<programlisting>\n"
+"@Entity\n"
+"public class Trainer {\n"
+"    @OneToMany\n"
+"    @JoinTable(\n"
+"            name=\"TrainedMonkeys\",\n"
+"            joinColumns = { @JoinColumn( name=\"trainer_id\") },\n"
+"            inverseJoinColumns = @JoinColumn( name=\"monkey_id\")\n"
+"    )\n"
+"    public Set&lt;Monkey&gt; getTrainedMonkeys() {\n"
+"    ...\n"
+"}\n"
+"\n"
+"@Entity\n"
+"public class Monkey {\n"
+"    ... //no bidir\n"
+"}\n"
+"               \n"
+"</programlisting> "
+"<para> <literal>Trainer</literal> は、join テーブル <classname>TrainedMonkeys</classname> を "
+"使用して <classname>Monkey</classname> と、そして <literal>Trainer</literal> "
+"(<literal>joinColumns</literal>) への外部キー<literal>trainer_id</literal> と、 そして <literal>Monkey</literal> "
+"(<literal>inversejoinColumns</literal>) への外部キー <literal>monkey_id</literal> との単一方法の関係を記述します。</para>"
+"</sect5><sect5 id=\"One_to_many-Defaults\" revision=\"1"
+"\"><title>デフォルト</title> <para>物理的マッピングの記述がない場合は、 join テーブルとの単一方向の "
+"one to many が使用されます。このテーブル名は、オーナーのテーブル名と、<keycap>_</keycap> と、反対側の "
+"テーブル名の連結となります。オーナーのテーブルを参照する外部キー名は、オーナーテーブルと、<keycap>_</keycap> と、 "
+"オーナーのプライマリキーコラム名の連結となります。反対側を参照する外部キー名は、オーナーのプロパティ名と <keycap>_</keycap> と "
+"反対側のプライマリキーコラム名の連結となります。特有のキーが反対側のテーブルを参照する外部キーに追加されて、one to many を "
+"反映します。</para> "
+"<programlisting>\n"
+"@Entity\n"
+"public class Trainer {\n"
+"    @OneToMany\n"
+"    public Set&lt;Tiger&gt; getTrainedTigers() {\n"
+"    ...\n"
+"}\n"
+"\n"
+"@Entity\n"
+"public class Tiger {\n"
+"    ... //no bidir\n"
+"}\n"
+"               \n"
+"</programlisting><para> <classname>Trainer</classname> は join テーブル <literal>Trainer_Tiger</literal> を "
+"使用して、<classname>Tiger</classname> と、<literal>Trainer</literal> (table name, "
+"<keycap>_</keycap>, trainer id) への 外部キー <literal>trainer_id</literal> と、そして、<literal>Monkey</literal> (property name, <keycap>_</keycap>, Tiger primary column) への外部キー <literal>trainedTigers_id</literal> との単一方向関係を記述します。"
+"</para> </sect5>"
 
 #. Tag: title
 #: Entity.xml:630
@@ -3042,6 +3156,102 @@
 "<literal>Store</literal> table. The <literal>customers_id</literal> column "
 "is a foreign key to the <literal>Customer</literal> table. </para> </sect5>"
 msgstr ""
+"<sect5 id=\"Many_to_many-Definition\"><title>定義</title><para>  "
+"many-to-many の関連づけは <literal>@ManyToMany</literal> アノテーションを使用して "
+"定義されます。また、<literal>@JoinTable</literal> アノテーションを使用して、 "
+"関連づけテーブルと join 条件も記述しなければなりません。関連づけが2方向である場合は、 "
+"1方はオーナー側となり他方が反対側となる必要があります(これは関連づけテーブル内で "
+"関係値を更新するときに無視されます):</para> "
+"<programlisting>\n"
+"@Entity\n"
+"public class Employer implements Serializable {\n"
+"    @ManyToMany(\n"
+"        targetEntity=org.hibernate.test.metadata.manytomany.Employee.class,\n"
+"        cascade={CascadeType.PERSIST, CascadeType.MERGE}\n"
+"    )\n"
+"    @JoinTable(\n"
+"        name=\"EMPLOYER_EMPLOYEE\",\n"
+"        joinColumns={@JoinColumn(name=\"EMPER_ID\")},\n"
+"        inverseJoinColumns={@JoinColumn(name=\"EMPEE_ID\")}\n"
+"    )\n"
+"    public Collection getEmployees() {\n"
+"        return employees;\n"
+"    }\n"
+"    ...\n"
+"}\n"
+"               \n"
+"</programlisting> <programlisting>\n"
+"@Entity\n"
+"public class Employee implements Serializable {\n"
+"    @ManyToMany(\n"
+"        cascade={CascadeType.PERSIST, CascadeType.MERGE},\n"
+"        mappedBy=\"employees\"\n"
+"        targetEntity=Employer.class\n"
+"    )\n"
+"    public Collection getEmployers() {\n"
+"        return employers;\n"
+"    }\n"
+"}\n"
+"               \n"
+"</programlisting> <para>ここまで多くの宣言と関連づけの為の詳細属性を表示してきました。 "
+"<literal>@JoinTable</literal> 記述ではもっと深く説明します。これは <literal>name</"
+"literal>、join コラムの配列(アノテーションの配列は { A, B, C } を使用して定義)、及び "
+"反対側の join コラムの配列を定義します。後者は <classname>Employee</"
+"classname> プライマリキー(\"反対側\")を参照する関連づけテーブルのコラムです。 "
+"</para> <para>前述にあるように、反対側は物理的なマッピングを記述する必要は "
+"ありません(記述してはいけません)。オーナー側のプロパティ名を含んだ簡単な <literal>mappedBy</literal> "
+"引数は、その2つをバインドします。</para> </sect5><sect5 id="
+"\"Many_to_many-Default_values\"><title>デフォルト値</title><para>他のいずれかのアノテーションと "
+"同様に、ほとんどの値は many to many 関連づけで推測されます。単一方向の many to many の中で、 "
+"物理的なマッピングを記述がない場合、以下のようなルールが適用されます。テーブル名はオーナーテーブル名と、 "
+"<keycap>_</keycap> と、反対側のテーブル名の連結となります。オーナーテーブルを参照する外部キーは、 "
+"オーナーテーブル名と、<keycap>_</keycap> と、オーナーのプライマリキーコラムとの連結になります。 "
+"反対側を参照する外部キー名は、オーナープロパティ名と、<keycap>_</keycap> と、反対側のプライマリキー "
+"コラムとの連結になります。単一方向の one to many 関連づけにも同じルールが使用されます。</para> "
+"<programlisting>\n"
+"@Entity\n"
+"public class Store {\n"
+"    @ManyToMany(cascade = CascadeType.PERSIST)\n"
+"    public Set&lt;City&gt; getImplantedIn() {\n"
+"        ...\n"
+"    }\n"
+"}\n"
+"\n"
+"@Entity\n"
+"public class City {\n"
+"    ... //no bidirectional relationship\n"
+"}\n"
+"               \n"
+"</programlisting><para><literal>Store_City</literal> は join テーブルとして "
+"使用されています。<literal>Store_id</literal> コラムは <literal>Store</literal> テーブルへの "
+"外部キーです。<literal>implantedIn_id</literal> コラムは、<literal>City</literal> テーブルへの "
+"外部キーです。</para> <para> 2方向の many to many 内で物理的なマッピングを記述がない場合、 "
+"以下のようなルールが適用されます。テーブル名は、オーナーのテーブル名と、<keycap>_</keycap> と、 "
+"反対側のテーブル名の連結となります。オーナーテーブルを参照する外部キー名は、反対側のプロパティ名と、 "
+"<keycap>_</keycap> と、オーナーのプライマリキーコラムの連結となります。反対側を参照する "
+"外部キー名は、オーナーのプロパティ名と、<keycap>_</keycap> と、反対側のプライマリキーコラムの "
+"連結となります。単一方向の one to many 関連づけにも同じルールが適用されます。</para> "
+"<programlisting>\n"
+"@Entity\n"
+"public class Store {\n"
+"    @ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})\n"
+"    public Set&lt;Customer&gt; getCustomers() {\n"
+"        ...\n"
+"    }\n"
+"}\n"
+"\n"
+"@Entity\n"
+"public class Customer {\n"
+"    @ManyToMany(mappedBy=\"customers\")\n"
+"    public Set&lt;Store&gt; getStores() {\n"
+"        ...\n"
+"    }\n"
+"}\n"
+"               \n"
+"</programlisting><para><literal>Store_Customer</literal> は join テーブルとして使用されます。 "
+"<literal>stores_id</literal> コラムは <literal>Store</literal> テーブルに対する外部キーです。 "
+"<literal>customers_id</literal> コラムは <literal>Customer</literal> テーブルに対する "
+"外部キーです。</para> </sect5>"
 
 #. Tag: title
 #: Entity.xml:658
@@ -3142,6 +3352,18 @@
 "more information about static fetching, check <xref linkend="
 "\"Single_Association_related_annotations-Lazy_options_and_fetching_modes\"/>."
 msgstr ""
+"関連づけのあるエンティティを即時的に、又は遅延的にフェッチする能力があります。 "
+"<literal>fetch</literal> パラメータは <literal>FetchType.LAZY</literal>、 "
+"(遅延)あるいは <literal>FetchType.EAGER</literal>(即時)のどちらかに "
+"セットすることができます。<literal>EAGER</literal> は外部の join 選択を "
+"使用して関連づけのあるオブジェクトを取り込み、<literal>LAZY</literal> は "
+"関連づけのあるオブジェクトが初めてアクセスされた時に選択を始動するだけです。 "
+"<literal>@OneToMany</literal> と <literal>@ManyToMany</literal> の "
+"関連づけは <literal>LAZY</literal> がデフォルトになっており、<literal>@OneToOne</literal> と "
+"<literal>@ManyToOne</literal> では、<literal>EAGER</literal> がデフォルトに "
+"なっています。静的フェッチングに関する詳細情報には、<xref linkend="
+"\"Single_Association_related_annotations-Lazy_options_and_fetching_modes\"/> を "
+"ご覧下さい。"
 
 #. Tag: para
 #: Entity.xml:696
@@ -3921,6 +4143,14 @@
 "followed by a dot (\".\"), followed by the name or the field or property of "
 "the primary key."
 msgstr ""
+"この例では、結果セットマッピングのエンティティメンバーを記述するだけです。 "
+"プロパティ/コラムマッピングは、エンティティマッピング値を使用して実行されます。 "
+"現在のケースでは、<literal>model</literal> プロパティは <literal>model_txt </literal> "
+"コラムにバインドされています。関連したエンティティへの関連づけが合成プライマリキーを "
+"巻き込む場合は、<literal>@FieldResult</literal> 要素が各外部キーコラムの為に使用 "
+"される必要があります。<literal>@FieldResult</literal> 名は、その関係の為のプロパティ名と、 "
+"その後にくるドット (\".\")と、そしてその後のプライマリキーのフィールドかプロパティの名前に "
+"よって構成されます。"
 
 #. Tag: programlisting
 #: Entity.xml:842
@@ -5955,6 +6185,15 @@
 "generator strategy. The strategy can be <literal>identity</literal>, or any "
 "defined generator name of your application."
 msgstr ""
+"もう1つの興味深い特徴は、代理のプライマリキーを bag の集合に対して定義する能力です。 "
+"これが bag のほとんどの欠点を取り除くことになります。更新と削除は効率的になり、 "
+"クエリ単位で、又はエンティティ単位で複数の <literal>EAGER</literal> bag を持つ "
+"ようになります。このプライマリキーは、使用中の集合テーブルの追加のコラム内に "
+"収納されますが、これは Java アプリケーションには見えません。@CollectionId は "
+"1つの集合を id bag としてマークするために使用されます。これはまた、プライマリ "
+"キーコラム、プライマリキータイプ、及びゼネレータ戦略の上書きを可能にします。 "
+"戦略は <literal>identity</literal> か、又は使用アプリケーションの定義済みゼネレータ名の "
+"いずれかになります。"
 
 #. Tag: programlisting
 #: Entity.xml:1263




More information about the jboss-cvs-commits mailing list